如果我在javascript中覆盖window.onerror应该返回true还是false?

too*_*hel 24 javascript error-handling

我想记录JavaScript错误,所以我压倒window.onerror这样:

window.onerror = function(message, file, lineNumber) {
    var browser_ = encodeURI(navigator.appVersion);
    var error_ = encodeURI("msg:"+ message + "\n\tfile:"+file+"\n\tln:"+lineNumber);
    var user_ = encodeURI("");

    ...

    return false;
}
Run Code Online (Sandbox Code Playgroud)

我看到有些人回来了true,有些人回来了false.哪个是对的?为什么?有一篇帖子提到了你必须返回true或者Firefox会以自己的方式处理错误.什么??

Tom*_*icz 27

MDNwindow.onerror:

当函数返回时true,这可以防止触发默认事件处理程序.

另见铬问题92062:

在Chrome中,true从window.onerror 返回允许错误传播,并且返回会false抑制错误.

这与Firefox和IE中的行为相反,其中返回'true'会抑制错误,但返回会false传播它.

注意:上面提到的问题已修复,现在MDN上针对所有浏览器都提到了行为.

  • 这似乎不再是真的(?).在Chrome和Firefox中返回true会停止传播处理程序. (13认同)
  • @Tomasz你没回答我该做什么!此外,您希望传播错误的示例是什么?我猜这是一个新问题! (2认同)