今天在项目中遇到了一个浏览器一直循环报错,看了下网上的讲解。突然想到了window.onerror事件:
1,以前用window.onerror事件的时候是页面上报错,但是不影响功能。测试又说报错影响项目质量或者对客户体验不好,所以就用了window.onerror事件:window.οnerrοr=function(){return ture;} 好像只针对IE才可以。
但是今天我突然发现onerror事件还有几个参数可以让我们开发者更加清楚的知道错误的信息:
<script type="text/javascript">
window.οnerrοr=testError;
function testError(){
arglen=arguments.length;
var errorMsg="参数个数:"+arglen+"个";
for(var i=0;i<arglen;i++){
errorMsg+="\n参数"+(i+1)+":"+arguments[i];
}
alert(errorMsg);
window.οnerrοr=null;
return true;
}
打印出来的错误信息: 1 几个错误 ,错误的类型, 错误的页面(url), 错误的行数
发现的问题: 如果页面出现多次错误,只捕获第一次错误并进行处理然后终止后面程序的执行
在Chrome和Safari中,window.onerror未起作用。