现在的位置: 首页 > 综合 > 正文

window.onerror 事件学习新收获

2016年12月03日 ⁄ 综合 ⁄ 共 936字 ⁄ 字号 评论关闭

 arglen
 = arguments.length;
 
 var  errorMsg = " 参数个
数:
 " + arglen + "  " ;
 
 for ( var  i = 0 ;i < arglen;i ++ ){
  errorMsg
 += " /n参数 " + (i + 1 ) + "  " + arguments[i];
 }
 alert(errorMsg);
 window.onerror
 = null ;
 
 return   true ;
}

function  test(){
error
}
test()
</ script > 


首先将testError方法绑定给onerror事件,然后在test方法里触发一个错误,在IE中执行时我们发现如下提示:

---------------------------
Microsoft Internet Explorer
---------------------------
参数个数:3个
参数 1:'error' 未定义
参数2:file://E:/yanwei/test/testError.html 
参 数3:14
---------------------------
确定   
---------------------------

可 以发现,当出错时函数testError捕获到了三个参数。通过将函数绑定到onerror事件就可以在页面出错时捕获以上三个参数。

在测试中还发现以下一些问题: 
1、通过在函数末尾加上return true,可以在函数出错时不会弹出系统的错误信息(IE)。
2、如果页面出现多次错误,只捕获第一次错误并进行处理然后终止后面程序的执行。
3、 onerror事件并不能捕获所有的错误,只能捕获函数外或函数内错误(??这个是什么意思,可不是开玩笑呢),如
adasdf;
function test(){
aaaa;
}
可以捕获到adasdf未定义的错误
function test(){
aaaa;
}
可 以捕获到aaaa未定义的错误,而对于
functiona test(){}或function test()dd{}
的错误却不能捕获 而会直接弹出系统错误信息。
4、onerror在IE和FF等浏览器执行方式是一样的,而且都包含这三个参数。

抱歉!评论已关闭.