[removed]无法在Chrome工作([removed] not working in chro

2019-09-01 01:36发布

我想一个onerror事件添加到我的网站。

window.onerror = function() {
    alert("an error");
}

但是,所有我得到的是:

notThere();
ReferenceError: notThere is not defined

我在想什么?

浏览器:Chrome浏览器26.0.1410.64米

重现步骤:

  • 将代码添加到控制台。
  • 添加notthere的()到控制台

Answer 1:

window.onerror在Chrome的工作(见的jsfiddle - http://jsfiddle.net/PWSDF/ ),但显然不是在控制台-这有一定的道理。



Answer 2:

当控制台直接产生一个错误window.onerror不会被触发。 它可以通过触发setTimeout虽然,例如, setTimeout(function() { notThere(); }, 0);

可能重复: 铬:将代码中的错误从开发者控制台触发window.onerror调用?



Answer 3:

其他一些原因,你可能无法在处理错误window.onerror (除了提到的):

  • 另一个库集window.onerror后你。
  • 如果您使用的角度,误差不会通过window.onerror 。 您可以使用此工厂来处理它们:

      .factory('$exceptionHandler', function() { return function errorCatcherHandler(exception, cause) { console.error(exception); if (window.OnClientError) window.OnClientError(exception); }; }) 

看到:

https://docs.angularjs.org/api/ng/service/ $ exceptionHandler的

http://bahmutov.calepin.co/catch-all-errors-in-angular-app.html



文章来源: window.onerror not working in chrome