本人是门外汉,求助:
有个页面,里面有很多JS代码,但都不是本人写,现在要求只要页面的JS有异常、错误,我就能捕获得到,不需要具体的错误是什么,只要有错就能捕获。
有人叫我用try...catch,但行不通,原因:引用JS文件太多,要从哪里try,总不能把所有的方法都try一次吧?

解决方案 »

  1.   

    window.onerror = function() {
         alert(“发生错误!”);
         return true;
      

  2.   


    window.onerror = function() {
      alert(“发生错误!”);
      return true;}
      

  3.   

    你误解了onerror的作用了~~~
    LZ,你的要求不过分,只要有异常、错误。你的浏览器都会提示的
    IE下会有黄色的错误在左下角
    FF下会有firebug的错误提示====
      

  4.   

    3楼+1
    另外
    window.onerror = function(e){
        alert(e);
    }
    也可以提供一些信息。
      

  5.   


    这个我知道,但在程序上什么捕获,因为我会做统一处理,
    对于楼主几个兄弟说的 window.onerror事件,捕获得并不完全
      

  6.   

    像IE左下角的黄色图标,IE能有这样的处理,是否可以调用它的这个处理方法?是否可能调用?
      

  7.   

    try
    {
    代码段
    }
    catch(e){
    alert("出错:"+e);
    }
      

  8.   


    感谢你的关注,但请再看看我的贴子!
    我要的不是捕获某个代码段的错误,是整个页面的,
    说明白一点,我随便给你一个页面,只要这个页面有JS错误我就得捕获得到,
    上头就是这样要求的,而且IE的脚本调试一定得打开
      

  9.   


    项目要求就是想捕获页面上的任何出错的地方,
    首先:IE的脚本调试一定得打开
    然后:捕获页面任何出错的地方
    再然后统一提示:"是否关闭脚本浏览器调试功能...."之类的
    最后根据选择:将IE的脚本调试给禁用掉总之:当IE的脚本调试一定得打开为前提时,出现的任何错误要有一个比较友好的提示,而不是系统弹出那异常对话框
      

  10.   

    你的需求在现有的ie环境下显得有点矛盾,矛盾在:如果使用try-catch捕获到异常,那么ie是不会弹出调试器的我觉得你的需求应该是:当不论发生什么页面错误时都提示用户js错了如果是在ie下,为每个页面的document添加onerror事件,由于事件冒泡的,会捕获到<html>下所有的对象加载错误
      

  11.   

    你写了三行,我也说明一下:
    第一行:N个页面都可能会有“弹出调试器”的情况,因为不可能都能try得到,页面是随意一个页面;
    第二行:你说的对,就是这样;只是我想提示友好一点,或者更好就是不让“弹出调试器”出现;
    第三行:那在onerror事件如何不让“弹出调试器”出现,这个是最终的目的
      

  12.   

    try
    {}catch(e){}
    估计也成吧.
      

  13.   

    debugger;在关键地方打上 断点 调试然后用alert 弹出来
      

  14.   

    这要求有点BT,可以下载个DebugBar进行剖析了。。
      

  15.   


    感谢关注
    其实我一直做后台开发,现在突然让我去做JS,没做过,上头是这样要求的,JS菜鸟,见笑了
      

  16.   


        <script language="javascript">
            alert(a);//这里一定报错,但由于放在window.onerror事件的前面,所以捕获不到
            
            window.onerror=function()
            {
                alert("错误");
                return true;
            }
        </script>
    其实最怕这点,哎
      

  17.   

    try
      {
        执行代码;
           }
    catch(error)
        {
            捕获错误;
          }
      

  18.   

    翻了下书:下面的放header中
    window.onerror=function(sMessage, sUrl, sLine){
      alert( sMessage + sUrl+sLine +"\n");
      ........
      return true;}在IE中,会执行所有并捕获所有,在FF中,只抓第一个,因为出错后不继续执行(但不知firebug如何处理的)实际上就是错误事件句柄try catch 是主动的
      

  19.   

    搞笑的很,trycatch这样的主动捕获不用,非要什么抓全局,还好意思说你是做后台开发过来的。