どこかでブラウザーページの更新をトリガーしているサードパーティの縮小Javascriptをデバッグしています。ただし、コードのどの部分が更新を引き起こしているのかはわかりません。
Chromeにブレークポイントを置く方法はありますか?ページが更新される直前にヒットするため、コールスタックを調べて原因を確認できますか?
これを試して:
beforeunload
およびunload
オプションを確認しますそれが役立つかどうかを確認してください。下のスクリーンショット。
編集:代わりに、それが機能しない場合は、Chromeを使用して、ロードされたすべてのスクリプトで原因となっている可能性のあるコードを検索できます。明らかに JavaScriptを含むページ ですが、ほとんどの場合、「ナビゲーター」、「場所」、「リロード」、「ウィンドウ」などの一般的な文字列がいくつかあります。
最後に、現在アクセスしている同じページへのリンクがある場合、一部のJSがクリックをトリガーしている可能性があります。
(私がモバイルにいるときのフォーマットを許してください...)
Firefox(Chromeではなく、重要)開発者ツールで、コンソールに移動し、addEventListener('beforeunload',()=>{debugger})
と入力して、コードを実行します。デバッガーがdebugger
ステートメントで停止したら、呼び出しスタックを確認します。イベントをトリガーした原因がわかります。 Chromeそこにはありませんでした。
少なくとも、これでうまくいきました。
Devtool、ネットワークペインで、[ログの保持]を切り替え、イニシエーター列を注意深く確認します。
サードパーティライブラリの機能を指定する必要はありません。広告などのUIコンポーネントの場合は、iframe
内に配置し、sandbox
属性を必要に応じて構成します。 https://developer.mozilla。 org/en/docs/Web/HTML/Element/iframe (下にスクロールしてサンドボックス属性セクション)
イベントによってトリガーされたものである場合は、(chrome開発ツールのみ)でgetEveneListener()関数を使用し、listener
トレイルを追跡します...(難しいが可能)例:
リスナープロパティは、呼び出される実際の関数に導きます。難読化されたコードでそれらを検索し、その目的を理解するためにデバッガーを追加できます。
他にも多くのシナリオがあります-より多くを指定できる場合。