ウェブページがドキュメントのvisibilitychangeイベントを引き起こさないようにするためにChrome拡張機能を作成しています。少なくとも、私はdocument.visibilityStateを上書きできる必要があります(読み込み専用のプロパティでも)。可能であれば、この拡張機能は私の目的のみであり、Chrome拡張機能ストアには含まれないため、Chromeブラウザを設定して自分が望むものを実現できる方法はありますか? Chromeの「デベロッパーモード」がオンになっている間は、この拡張機能を使用する必要があります。Chrome拡張機能:ページの可視性APIを無効にする方法
誰かがこれを達成するための創造的な方法を考えてくれることを願っています。ありがとうございました。
ご注意ください! Spoof or disable the Page Visibility API
テストそれを自分自身::もはやクロームの新しいバージョンで有効になりません4年前の回答で解決策がありました
// This codes worked 4 years ago but not anymore
var c='(function(){var a=Node.prototype.addEventListener;Node.prototype.addEventListener=function(e){if(e=="visibilitychange"||e=="webkitvisibilitychange"){}else a.apply(this,arguments)}})()'
, E=document.documentElement;
E.setAttribute('onreset', c);
E.dispatchEvent(new CustomEvent('reset'));
E.removeAttribute('onreset');
// THIS WILL STILL LOG THE STATES EVEN WITH THE ABOVE CODE RUNNING
document.addEventListener("visibilitychange", function() {
console.log(document.visibilityState);
});
た場合は、そのことはできないChromeのは、あるそこのFirefox/Safari/Operaこれを実現するブラウザコード?ここで
はそれをテストしていないが、コードは 'EventTarget.prototype'、ないノードを使用する必要があります。 – wOxxOm
また、このページではインラインコードを禁止していますので、Chrome拡張機能のコンテンツスクリプトで追加するときにCSPのページから除外する 'script'要素に' c'というテキストを挿入しようとします。 – wOxxOm
Node.prototypeをEventTarget.prototypeに置き換えようとしましたが、まだ運がありません。コードはdont.jsと呼ばれていますが、別のファイルにあり、そこにalert()を投げて実行していることを確認し、実行中であることを確認しました。 – RichardW