"Internet Explorer无法打开internet站点XXX,已终止操作" 解决办法

 近期在开发项目的时候使用的DWZ的J-UI开源页面框架,这个页面框架页面效果和操作方式都比较不错,但是在用的时候出现了一个问题,Internet Explorer无法打开internet站点××,已终止操作

 在Firefox下测试正常,IE下却提示“无法打开Internet站点 已终止操作”的错误

 

当然不是我吐槽IE,IE确实不怎么的。。。也不是特别遵循HTML规范,导致各种各样的兼容性问题。最后苦了咱程序猿。。

然后在网上搜索,有很多解决办法 ,总体来说问题分下面几种情况:

 

      用户端

 

       由于用户浏览器的安全级别问题,

     1. 自行修改IE自身的选项,比如说安全级别和浏览器加载项那些东西

     2. 安装工具栏,比如Google具栏、Baidu工具栏

     3. 病毒及未知的篡改甚至IE本身的Bug导致的某些组件损坏

 

还有其他的如网络设置、DNS服务器、网络防火墙、HOSTS文件等问题。。。


这里就不一一列举了,以我们自身的情况来看:我们的开发人员,浏览器一般不会无缘无故的损坏,也不会突然之间多了些加载项,相信有过开发经验的人都会注意自己开发环境的干净,不会乱装一些杂乱的软件,也不会去修改浏览器的安全级别。

这些情况我们可以不考虑。那么剩下的,就是我们页面代码本身的问题了。

 

网上找了一下,终于找到了问题的根源,主要是因为浏览器在加载Javasrcipt的时候产生的错误,具体是由于我们在加载某些JS方法的时候HTML 的DOM结构并没有完全生成,这种情况很常见。如果DOM加载完之前用JS进行了增加删除节点的操作,例如appendChild,removeChild,innerHTML等。

很实际的说,DOM没有加载完成,那个元素都还没有生成,就用JS去调用那个元素的appendChild,removeChild,innerHTML相关方法,这样浏览器根本不能识别这个操作,从而导致了非法操作,报出了Internet Explorer无法打开internet站点××,已终止操作的错误。  

 

解决办法:

    尝试用这样的方法加载JS, 

  window.οnlοad=function(){
     ...
   }

 

这样就能保证页面元素都载入完毕再去执行JS操作。

 

还有一种:

  if (document.readyState=="complete"){
     ....
    }else{

setTimeout(里面写你原来要执行的方法,时间);//定时执行

}

 

当判断页面载入完毕再去执行。

 

如果是链接到外部JS文件可以这样做:

 


 加上 defer="defer" 属性,页面加载完毕之后再执行该脚本,以避免找不到对象。

 

我是通过后面这个方法解决的,但如果加载很多JS文件,而且有些不能在所有元素都加载完再去执行,那么这样情况下只能自己一个个JS链接尝试加defer="defer",看可不可以,目前我只能找到这种方法解决,如果哪位童鞋还有更好的方法不妨一起共享共享吖~~    ~_~

你可能感兴趣的:("Internet Explorer无法打开internet站点XXX,已终止操作" 解决办法)