查找使用chrome开发人员工具导致js函数调用的原因

时间:2017-01-10 08:15:40

标签: javascript google-chrome

在我的网页中,我得到一个“警告”,我想知道是什么导致它触发并出现在页面中。是否可以使用chrome开发工具来查找它?

3 个答案:

答案 0 :(得分:2)

您可以将自己的某些功能绑定到window.alert;

alert = function myCustomAlert(){ console.log("caller", myCustomAlert.caller); }

您可以将其放在开发人员工具控制台并检查调用者。

您可以使用以下其他技术执行此操作:

alert = function myCustomAlert(){ console.log("caller", arguments.callee.caller.name); }

唯一的问题是它必须在非严格范围内运行。

答案 1 :(得分:1)

是进入获取此警报的页面并打开开发人员工具并进入“元素”标签并搜索文本“警报”

  

(Windows中的CTRL + F或Mac中的CMD + F)

。你应该找到触发警报实际代码的代码行应该是window.alert("message which you are seeing on screen");

或替代方式是右键单击页面并执行

  

“查看页面来源”

并搜索相同的文字“警告”,你应该得到代码行。

答案 2 :(得分:0)

尝试将新功能分配给window.alert属性并使用console.trace()打印堆栈跟踪:

window.alert = (function( window ) {
  var oldAlert = window.alert;
  return function alert( message ) {
    console.trace();
    oldAlert( message );
  };
})( window );

堆栈跟踪优于调用者名称,因为它在严格模式下工作,并提供更多信息。但是,如果alertsetTimeoutsetInterval调用// In this case stack trace consists of single alert call. setTimeout(alert, 0, "foo"); 或作为事件处理程序,则此代码段将无效:

setTimeout

因此,如果此解决方案对您没有帮助,您可能需要以类似的方式替换其他函数(setIntervaladdEventListenerpriority)。有关详细信息,请查看Long stacktraces project