(转)解决“Internet Explorer 无法打开 Internet站点已终止操作”问题

在IE下,当页面还没有加载完全时,如果正在执行的JS代码中含有使用了document.createElement的话,很容易引起页面加载失败。导致提示"internet explore 无法打开internet站点 http://www.xxx.com/xxx.html 已终止操作"。 

这是因为在IE下,在加载文档的过程中,整个HTML文档的DOM结构尚未生成完整,而此时正在执行的JS就已创建出新的DOM结点了,致使DOM树的结构发生紊乱。 

解决方法大概有两种: 

1、加载完成判断 
if (document.readyState=="complete"){ 
.... 
}else{ 
document.onreadystatechange=function(){ 
if(document.readyState=="complete")...; 

2、加载完后执行 
window.onload=function(){ 
... 
}

<!--2

做开发时会碰到“Internet Explorer无法打开internet站点文件.....操作终止”,还无法调试,主要是加载页面时脚本引起DOM紊乱造成的。

目前我知道的会出现此问题的情况:

1. 在DOM加载完之前进行了增加删除节点的操作,例如appendChild,removeChild。innerHTML操作目前还没发现有这个问题。

解决办法:在jQuery(document).ready()或者在body的onload事件里执行这些操作。

2. head包含<base target="_blank"/>,有对head对象的DOM操作也会出现这个问题。

解决办法:1)<base target="_blank"/>改为<base target="_blank"></base>,没找到相关资料解释这个问题。

                 2)使用head.insertBeforeChild()代替appendChild,insertBeforeChild不会造成DOM紊乱。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wangjj_016/archive/2010/02/10/5304780.aspx

<!--3(jquery)

ASP.NET页面PostBack后向页面添加了js脚本,js脚本又对DOM对象进行了操作,而DOM又没加载完毕,导致浏览器中断。于是出现“Internet Explorer无法打开站点,已终止操作”的错误。
解决方法:
1. 在DOM加载完成之后再执行js操作;
2. 用jQuery,$(function() {function doit(){};}); 保证js脚本在DOM加载完毕之后执行。

<!--4

这个可能是我自己发神经搞出来的个问题吧.开始懒得做,简单用后台直接给一个加了runat="server"的div赋值。最后又想用jquery。结果混到一起,自己先晕了。

贴上先,

GetAllFile(0);//最后是将拼出来的html代码传给前台一个div

RegisterStartupScript(FN, "<script>out(1);</script>");

这样写呢一直就会报错


后来看了下,觉得可能是因为前台还有其他的数据未加载完全,就改变了div的InnerHTML吧。

最后代码:

 

 

 

RegisterStartupScript(FN, "<script defer=true>out(1);</script>"); //当页面加载完时调用

GetAllFile(0);//调用方法__再改变html

posted @ 2013-05-10 16:34  九点一刻  阅读(997)  评论(0编辑  收藏  举报