web-dev-qa-db-ja.com

Chromeのインラインjavascriptリダイレクトの前にjavascriptを解除する

インラインjavascriptリダイレクト(window.location = "/anotherpage")。 Chromeでページをロードしますが、リダイレクト行を無効にしているため、リダイレクトされずにページを使用できます。

私が試したものは次のとおりです。

  • 開発者ツール->コグ->一般-> JavaScriptを無効にします。ページをロードします。リダイレクトしません(はい!)。しかし、私はまだページの残りのjavascriptを実行したいのですが、そうではありません。

  • URLを入力し、[開発ツール]-> [ソース]-> [一時停止(F8)]をクリックします。まだリダイレクトされていません(はい!)今、一時停止を解除する前にリダイレクト行を無効にしたいのですが、その部分はまだDeveloper Toolsにロードされていません。だから私はそこに着くまで他のファイルのJavaScriptコードをステップスルーし始めますか?しかし、他のファイルjavascriptから抜けるとすぐに、すぐにリダイレクトされます(doh!)。

これはできますか? javascriptの行を無効にするのは簡単だと思っていましたが、困惑しています。

81
krubo

開発者ツール->ソース->イベントリスナーブレークポイント(右側のサイドバー)->ロード->アンロードのチェック

これにより、ナビゲーションの前にディスパッチされるアンロードイベントでデバッガーがブレークします。

132
vsevik

以下をせよ

  1. 開く開発者ツール
  2. ソースタブに移動
  3. イベントリスナーのブレークポイントを探してください
  4. 展開Loadオプション
  5. ここでチェックunloadオプション

Chrome unload breakpoint

37
aWebDeveloper

サードパーティのJSライブラリがあり、ページをリロードするための条件が間違っていました。このため、ページは継続的にリロードされました。間違ったコードがどこにあるかを見つけようとしました。

「イベントリスナーブレークポイント」メソッドを使用しようとしましたが、コメントとして、アンロードイベントにスタックトレースがないため、ほとんど役に立たないことがわかりました。

私のために働いたsolution:サンドボックス属性を持つiframeタグを持つページを作成しました<iframe sandbox="allow-same-Origin allow-scripts allow-popups allow-forms"></iframe>そして、私のサイトをそこに置きます。これにより、セキュリティエラーがchrome内で発生し、JSが場所オブジェクトにアクセスしようとした場所がコンソールに表示されます。クリックしてコードを確認できます。 Chromeには、JSデコンプレッサ(ソースウィンドウの左下にある{}ボタン)があり、きれいに印刷した後でも行を表示できるため、圧縮されたJSでも表示できます。

サンドボックスプロパティの詳細: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#attr-sandbox

10
Adam Wallner