ChromeでインラインJavaScriptリダイレクトの前にJavaScriptを中断する


91

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

これが私が試したものです:

  • 開発ツール-> Cog-> General-> Disable JavaScript。ページを読み込みます。リダイレクトしません(そうです!)。しかし、ページの残りのJavaScriptを実行させたいのですが、そうではありません。

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

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

回答:


142

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

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


2
動作する答えにもう一度感謝します。「これは機能しません」というメッセージに対する多くの賛成の理由を知りたいと思います。これは以前のバージョンのChromeで問題でしたか?それがうまくいかなかった誰かがより多くの情報を提供できますか?
クリスチャンロンドー2014

8
最初はこの応答を見て非常に満足していましたが、それが機能しないことを確認できました(提案されたようにアンロードをチェックしたにもかかわらず、ページのリダイレクトが行われ、ページのソースにブレークポイントを設定する機会がありません) A)。多分それは最初のページが「リダイレクトする」方法と関係があるのでしょうか?私の場合ページAページBに(ジャバスクリプト経由)POSTを実行します(そのjavascriptの私は、デバッグしようとしているページ)に
エミール・G

17
それは大丈夫に動作し、問題はそれが本当に便利ではありませんので、あなたが実際にリダイレクトをトリガーものを見ることができなくなりますよう、コールスタックは、空であることである
ユージンKuzmenko

8
@EugeneKuzmenkoは真剣に、私はこれが実際にどのように誰かを助けているのかわかりません
Will P.

1
これは、デバッガーが停止できるアンロードまたはbeforeunloadハンドラーがページにある場合にのみ機能します。そのようなハンドラーが登録されていない場合、デバッガーはトリガーされません。
ランペル

42

以下をせよ

  1. オープン開発者ツール
  2. [ ソース ]タブに移動
  3. イベントリスナーのブレークポイントを探す
  4. 展開のロードオプションを
  5. ここでアンロードオプションを確認してください

Chromeアンロードブレークポイント


@TomBritoはbeforeunloadブレーク(私はいくつかのばかげた新聞のペイウォールをかわすために使用しなければなりませんでした)のときに、要素を検査できます。アンロード時に検査できませんか?Chrome 71.0.3578.98を使用しています。
linkD

12

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

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

ソリューション私のために働いている:私は、sandbox属性、例えばとの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


これは、(そのiframe内の)コードが使用しtop.location = "..."ない場合にのみ機能しますlocation = "..."
mems
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.