时间:2014-10-17 09:52:33 来源: 复制分享
今天用IE打开 soso 的时候提示:
Internet Explorer 无法打开 xxxxxxx 已终止操作
但是用 firefox 就可以访问。怪事了 用别的IE内核浏览器也是一样情况
以前做过的项目由于添加了在线统计系统。结果在Firefox下测试正常,IE下却提示“无法打开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
ASP.NET页面PostBack后向页面添加了js脚本,js脚本又对DOM对象进行了操作,而DOM又没加载完毕,导致浏览器中断。于是出现“Internet Explorer无法打开站点,已终止操作”的错误。
解决方法:
1. 在DOM加载完成之后再执行js操作;
2. 用jQuery,$(function() {function doit(){};}); 保证js脚本在DOM加载完毕之后执行。
这个可能是我自己发神经搞出来的个问题吧.开始懒得做,简单用后台直接给一个加了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