您的位置:首页 > 其它

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

2013-05-10 16:34 459 查看
在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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐