如果我重写窗口.javascript中的onerror应该返回true还是false

If I override window.onerror in javascript should I return true or false?

本文关键字:返回 true 还是 false onerror 重写 窗口 javascript 中的 如果      更新时间:2023-09-26

我想记录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会以自己的方式处理错误。什么? ?

From MDN on window.onerror:

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

参见chromium Issue 92062:

在Chrome中,从窗口返回true。onerror允许错误传播,返回false可以抑制错误。

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

注意:上面提到的问题已经修复,行为现在在所有浏览器的MDN上提到。