Google chrome window.onerror在chrome中不工作

Google chrome window.onerror在chrome中不工作,google-chrome,window,onerror,Google Chrome,Window,Onerror,我正在尝试将onerror事件添加到我的网站 window.onerror = function() { alert("an error"); } 但我得到的只是: notThere(); ReferenceError: notThere is not defined 我错过了什么 浏览器:Chrome 26.0.1410.64 m 复制步骤: 将代码添加到控制台 将notThere()添加到控制台 window.onerror在Chrome中工作(请参阅jsfiddle-),但显

我正在尝试将onerror事件添加到我的网站

window.onerror = function() {
    alert("an error");
}
但我得到的只是:

notThere();
ReferenceError: notThere is not defined
我错过了什么

浏览器:Chrome 26.0.1410.64 m

复制步骤:

  • 将代码添加到控制台
  • 将notThere()添加到控制台

window.onerror在Chrome中工作(请参阅jsfiddle-),但显然不在控制台中-这有一定的意义。

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


可能重复:

您可能无法处理
窗口中的错误的一些其他原因。onerror
(除上述原因外):

  • 另一个库在您之后设置
    window.onerror
  • 如果您使用的是角度误差,则误差不会通过
    窗口。onerror
    。您必须使用此工厂处理它们:

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

$exceptionHandler


这有什么意义呢?我想,这会劫持错误,而不是在控制台中显示错误。我想这是为了安全和隔离。因此,该站点无法访问用户在开发人员控制台上篡改的内容。不提及它会使可能的异常捕获变得混乱,或导致捕获错误的未定义行为,而这些错误不是在站点上自然发生的。因此,使用控制台的日志不会被捕获吗?我没有从
window.location.href=”中获得任何信息not://anywhere";。。。它只是登录到控制台,我无法捕获它。有多少错误是这样不可能得到的?