window.onerror不一致在浏览器之间返回true / false - 可用的任何正确返回值列表?

时间:2013-03-20 12:07:04

标签: javascript return return-value onerror

据我所知,如果我们不想调用浏览器的javascript错误处理程序,window.onerror之间应该返回什么不一致。

由于我们的网站相当麻烦,我们需要确保不会调用浏览器错误处理程序永远

我的意思是:

window.onerror=function(){
    console.log('error captured');
    return false;
}

显然,“return false”部分将浏览器与浏览器区分开来。

有没有人知道我们可以找到一个如何处理浏览器到浏览器的列表,a-la quirksmode / caniuse?

或者,如果列表相当小,是否有人知道需要返回的值以将每个浏览器错误处理程序排除在他们头顶之外?

谢谢!

1 个答案:

答案 0 :(得分:1)

你的工作已经完成了。

首先,您从true处理程序返回onerror,而不是false ...当浏览器询问您是否应该停止时,请将其视为。

接下来,某些浏览器的某些版本只能在这个区域中使用。他们有时候不像宣传的那样工作,似乎没有人知道为什么。我见过的最聪明的答案是关于调用堆栈大小变得太大了......这对我来说听起来不错!

那说,这应该可以解决问题:

<script>
function stopErrors() {
    return false;
}
window.onerror = stopErrors;
</script>

http://api.jquery.com/error/的一些要点:

  

注意:不应将jQuery错误事件处理程序附加到窗口对象。发生脚本错误时,浏览器会触发窗口的错误事件。但是,窗口错误事件接收不同的参数,并且具有与传统事件处理程序不同的返回值要求。请改用window.onerror。

  

必须在浏览器触发错误事件之前附加事件处理程序...此外,在本地提供页面时,可能无法正确触发错误事件;错误依赖于HTTP状态代码,如果URL使用文件:protocol。

,通常不会触发