我使用了一些我没写过的非常庞大且令人困惑的JavaScript文件。有时会出现警报,但我不知道它来自哪里。
您可以在所有文件中搜索警报中包含的文本,但如果该文本是动态的,则无效。
有没有办法设置断点以拦截警报?
答案 0 :(得分:41)
位于HTML的最顶层:
window.alert = function() {
debugger;
}
debugger
是一个调用任何可用调试功能的语句。打开开发人员工具后,只要调用alert
,您就会自动点击断点。然后,您可以检查调用堆栈以确切了解调用自定义alert
函数的内容。
答案 1 :(得分:5)
它可能对您有帮助,也可能没有帮助,但您可以覆盖alert
函数以随意执行任何操作。例如,您可以将消息记录到控制台,而不是警告框。
window.alert = function(msg) {
console.log(msg);
}
alert('test');
答案 2 :(得分:3)
打开Chrome推送F12
键,然后转到Sources
。
然后选择脚本文件Ctrl+F
并搜索警报。
你可以在你想要的任何一行上放置断点
答案 3 :(得分:3)
我同意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);
}