我想记录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会以自己的方式处理错误。什么?
答案 0 :(得分:27)
来自MDN上的window.onerror
:
当函数返回
true
时,这会阻止触发默认事件处理程序。
另见铬Issue 92062:
<击>在Chrome中,从window.onerror返回
true
可以传播错误,并返回false
来阻止错误。
这与Firefox和IE中的行为相反,返回'true'会抑制错误,但返回 false
会传播它。
注意:上述问题已得到解决,现在MDN针对所有浏览器提及了行为。