触发onerror事件处理异常 博客分类: JavaScript onerror事件处理异常
程序员文章站
2024-03-25 16:24:28
...
一 介绍
触发onerror事件是最早用于处理JavaScript异常的机制,页面出现异常时,将触发onerror事件,该事件在window对象上触发。
语法:
<script language="javascript">
window.onerror=function()
{
alert("您调用的函数不存在");
return true;
}
</script>
window.onerror:触发onerror事件。
如果在onerror事件处理函数中没有使用return true语句,在弹出错误提示对话框后,浏览器的错误报告也会显示出来。为了隐藏此错误报告,函数需要返回true。
图像对象也可以触发onerror事件。
语法:
<script language="javascript">
document.images[0].onerror=function()
{
somestatements;
return true;
}
</script>
document.images[0]:页面中的第一个图像。
使用onerror事件处理异常除了可以捕捉异常之外,还可以提供如下3种信息来确定发生异常的详细信息。
1、异常信息:获取异常信息。
2、URL:获取发生异常的文件的绝对路径。
3、行号:给定发生异常文件的行号。
语法:
<script language="javascript">
window.onerror=function(ms,Url,Line)
{
alert("您调用的函数不存在\n"+ms+"\n"+Url+"\n"+Line+"\n");
return true;
}
</script>
二 使用onerror事件处理异常应用
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>onerror事件</title>
<script language="javascript">
window.onerror=function(ms,Url,Line)
{
alert("您调用的函数不存在\n"+ms+"\n"+Url+"\n"+Line+"\n");//弹出错误提示对话框
return true; //返回true
}
function ImgLoad()
{
document.images[0].onerror=function()
{
alert("您调用的图像并不存在\n");
};
document.images[0].src="test.gif";
}
</script>
</head>
<body onload="ImgLoad()">
<script language="javascript">
onHave(); //调用不存在的onHave()函数
</script>
<img/>
</body>
</html>
三 运行结果
四 运行说明
1、由于在HTML文件中<body>区域调用页面中并没有定义的函数onHave(),所以执行此页面将会发出异常。这时,会弹出显示“您调用的函数不存在”的错误提示对话框,同时在此对话框中显示此异常的相关详细信息,包括错误信息、发生异常文件的绝对路径以及在程序中发生异常的行号。
2、在页面中定义了一个图像,由于此时没有赋给此图像src特性,所以在onerror事件处理函数中赋给第一个图像src值将会出现异常,程序将弹出错误提示对话框。