ie8上提示某个对象为空或者不是对象,使用try...catch之后,没有错误提示。

for(var pop in fb){

                    _p[pop] = $(fb[pop]).children()[0].outerHTML;

            
            }

这是javascript中的一段代码,在ie8下会报错,如图
图片描述

但是在谷歌下是正常的,然后我修改了这段代码

for(var pop in fb){
                try{
                    _p[pop] = $(fb[pop]).children()[0].outerHTML;
                }catch(e){
    
                }
            }

使用了try...catch之后,问题解决,ie没有再提示这个错误。

我想问的是,这个try.....catch是怎么把这个错误处理掉,让浏览器忽略这个错误的?

阅读 7.8k
3 个回答

和jquery的版本有关系。在低版本ie中使用jquery可使用低版本的。避免出现兼容性错误。

可以使用jquery的prop方法获取outerHTML,就不会出错了,如:

$("body").prop("outerHTML");//<body>...</body>

没有被用户代码捕获处理异常,向上一级执行环境抛出,一直到浏览器全局执行环境,被浏览器抛出提示信息
如果有try/catch就意味着对异常有处理,浏览器全局执行环境就不会被通知到要处理异常。除非在catch中再次抛出异常~~

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题