如何找出警报的起因?

我只是好奇而已
有什么办法在任何浏览器找出我得到的警报是从哪里提出的?

我在Chrome上试了一下,但是警报显示时没有可用的调用堆栈。

任何想法?

您可以覆盖alert ,并为堆栈跟踪创build一个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); } 

这应该是跨浏览器。