26

私が書いたわけではない、非常に大きくて紛らわしい JavaScript ファイルを扱っています。ときどきアラートが表示されますが、どこから来たのかわかりません。

アラートに含まれるテキストをすべてのファイルで検索できますが、そのテキストが動的である場合は機能しません。

アラートをインターセプトするためにブレークポイントを設定する方法はありますか?

4

4 に答える 4

69

HTML の一番上に:

window.alert = function() {
    debugger;
}

debugger利用可能なデバッグ機能を呼び出すステートメントです。alert開発者ツールが開いていると、が呼び出されるたびに自動的にブレークポイントにヒットします。その後、コール スタックを調べて、カスタムalert関数が呼び出されたものを正確に確認できます。

于 2013-01-04T14:51:42.497 に答える
8

それはあなたにとって役立つかもしれないし、そうでないかもしれませんが、あなたはそれalertであなたがやりたいことをするために関数を上書きすることができます。たとえば、アラートボックスの代わりに、メッセージをコンソールに記録させることができます。

window.alert = function(msg) {
    console.log(msg);
}
alert('test');
于 2013-01-04T14:49:35.287 に答える
6

Brian Glaz に同意しますが、詳細 (行番号) を取得するために、何かを警告してコンソールにエラーを出力するときにエラーをスローしようとする場合があります。このようにすると、コンソールは、アラート関数が呼び出された正しい行番号を示します。

このスニペットを文書の先頭に置いて、試してみてください:

var originalAlert = window.alert;
window.alert = function(){
    try{
        throw new Error('alert was called');
    } catch(e){
      console.warn(e);
    }
    return originalAlert.apply(window, arguments);
}
于 2013-01-04T14:53:56.533 に答える
3

Chrome プッシュF12キーを開き、 に移動しSourcesます。次に、スクリプト ファイルCtrl+Fを選択し、アラートを検索します。任意の行にブレークポイントを配置できます

于 2013-01-04T14:51:55.217 に答える