本人是门外汉,求助:
有个页面,里面有很多JS代码,但都不是本人写,现在要求只要页面的JS有异常、错误,我就能捕获得到,不需要具体的错误是什么,只要有错就能捕获。
有人叫我用try...catch,但行不通,原因:引用JS文件太多,要从哪里try,总不能把所有的方法都try一次吧?
有个页面,里面有很多JS代码,但都不是本人写,现在要求只要页面的JS有异常、错误,我就能捕获得到,不需要具体的错误是什么,只要有错就能捕获。
有人叫我用try...catch,但行不通,原因:引用JS文件太多,要从哪里try,总不能把所有的方法都try一次吧?
alert(“发生错误!”);
return true;
window.onerror = function() {
alert(“发生错误!”);
return true;}
LZ,你的要求不过分,只要有异常、错误。你的浏览器都会提示的
IE下会有黄色的错误在左下角
FF下会有firebug的错误提示====
另外
window.onerror = function(e){
alert(e);
}
也可以提供一些信息。
这个我知道,但在程序上什么捕获,因为我会做统一处理,
对于楼主几个兄弟说的 window.onerror事件,捕获得并不完全
{
代码段
}
catch(e){
alert("出错:"+e);
}
感谢你的关注,但请再看看我的贴子!
我要的不是捕获某个代码段的错误,是整个页面的,
说明白一点,我随便给你一个页面,只要这个页面有JS错误我就得捕获得到,
上头就是这样要求的,而且IE的脚本调试一定得打开
项目要求就是想捕获页面上的任何出错的地方,
首先:IE的脚本调试一定得打开
然后:捕获页面任何出错的地方
再然后统一提示:"是否关闭脚本浏览器调试功能...."之类的
最后根据选择:将IE的脚本调试给禁用掉总之:当IE的脚本调试一定得打开为前提时,出现的任何错误要有一个比较友好的提示,而不是系统弹出那异常对话框
第一行:N个页面都可能会有“弹出调试器”的情况,因为不可能都能try得到,页面是随意一个页面;
第二行:你说的对,就是这样;只是我想提示友好一点,或者更好就是不让“弹出调试器”出现;
第三行:那在onerror事件如何不让“弹出调试器”出现,这个是最终的目的
{}catch(e){}
估计也成吧.
感谢关注
其实我一直做后台开发,现在突然让我去做JS,没做过,上头是这样要求的,JS菜鸟,见笑了
<script language="javascript">
alert(a);//这里一定报错,但由于放在window.onerror事件的前面,所以捕获不到
window.onerror=function()
{
alert("错误");
return true;
}
</script>
其实最怕这点,哎
{
执行代码;
}
catch(error)
{
捕获错误;
}
window.onerror=function(sMessage, sUrl, sLine){
alert( sMessage + sUrl+sLine +"\n");
........
return true;}在IE中,会执行所有并捕获所有,在FF中,只抓第一个,因为出错后不继续执行(但不知firebug如何处理的)实际上就是错误事件句柄try catch 是主动的