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

时间:2011-11-10 22:27:29

标签: 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;
}

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

1 个答案:

答案 0 :(得分:27)

来自MDN上的window.onerror

  

当函数返回true时,这会阻止触发默认事件处理程序。

另见铬Issue 92062

<击>   

在Chrome中,从window.onerror返回true可以传播错误,并返回false来阻止错误。

     

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

注意:上述问题已得到解决,现在MDN针对所有浏览器提及了行为​​。