知りたいだけです
どのブラウザからも、どこでアラートが発生したのかを知る方法はありますか?
chrome=で試してみましたが、アラートが表示されたときに利用可能なコールスタックがありません。
何か案が?
alert
を上書きして、スタックトレースのError
を作成できます。
var old = alert;
alert = function() {
console.log(new Error().stack);
old.apply(window, arguments);
};
あなたはそうするためにアラートをモンキーパッチすることができます:
//put this at the very top of your page:
window.alert = function() { throw("alert called") }
alert
をラップしてみませんか?
window.original_alert = alert;
alert = function (text) {
// check the stack trace here
do_some_debugging_or_whatever();
// call the original function
original_alert(text);
}
これはクロスブラウザである必要があります。
トレース機能があり、コンソールはすべての主要なブラウザーによって提供されます。 console.trace();
以前の回答で説明したプロキシアプローチとconsole.trace()を使用すると、コンソール自体にスタック全体と行番号を出力できます。
(function(proxied) {
window.alert = function() {
console.trace();
return proxied.apply(this, arguments);
};
})(window.alert);
これはIIFEです。すべてのアラート呼び出しのトレースがコンソールに出力されます。