use*_*073 18 javascript webkit
我使用了一些我没写过的非常庞大且令人困惑的JavaScript文件.有时会出现警报,但我不知道它来自哪里.
您可以在所有文件中搜索警报中包含的文本,但如果该文本是动态的,则无法使用.
有没有办法设置断点以拦截警报?
jos*_*736 47
在HTML的最顶层:
window.alert = function() {
debugger;
}
Run Code Online (Sandbox Code Playgroud)
debugger是一个调用任何可用调试功能的语句.打开开发人员工具后,无论何时alert调用,您都会自动命中断点.然后,您可以检查调用堆栈以查看调用自定义alert函数的确切内容.
我同意 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);
}
Run Code Online (Sandbox Code Playgroud)
它可能对您有帮助,也可能没有帮助,但您可以覆盖该alert功能,以便随意执行任何操作.例如,您可以将消息记录到控制台,而不是警告框.
window.alert = function(msg) {
console.log(msg);
}
alert('test');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6967 次 |
| 最近记录: |