JavaScript-IE6“无法打开站点,已终止操作”提示的解决

JavaScript-IE6“无法打开站点,已终止操作”提示的解决

瑾兮 发布于 2017-08-11 字数 175 浏览 1261 回复 4

今天遇到一个问题,网站在IE 6下面打开会提示:Internet Explorer无法打开站点XXX。已终止操作。

我补充一下,这个我基本确定是js引起的,但是不太知道具体js那里导致的...

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

灵芸 2017-10-21 4 楼

解决办法大概为以下两点:

在appendChild或者innerHTML操作处判断document.readyState=="complete", 若为否,则setTimeout若干秒之后重新作这个操作。但是,此属性只对ie,opeara有效,ff的document没有readyState属性,永远是undefined.
在script中使用defer属性。意在页面加载完毕后再执行脚本,这样可以避免找不到对象的问题。defer不会考虑外部文件是否全部下载完,只会判当前页面是否全部加载完成。并且,有defer标签的代码块里不能写document.write方法。

夜无邪 2017-09-21 3 楼

这个最大的原因是应该是你的脚本是写在body里的,而且是直接执行的,由于你执行的脚本里有对Document进行操作,而此时Document还没有加载完成,所以对于IE来说就会报这样的错误,例如:把script脚本套在<table>里,但是table还没有加载还</table>之前就执行了脚本对table里的表格行列进行操作。建议你还是将脚本集中放到<head>里,应该就不会出现这样的错误了。

瑾兮 2017-09-01 2 楼

因为在dom ready之前进行document.write或者appendChild操作,检查你所有的代码,把这类的代码放到domready之后

归属感 2017-08-22 1 楼

ie6的容错很差,出现上面情况有两种可能,一是html标签有遗漏(缺结束标记);二是js问题,有可能是页面没加载完毕引起的.
js问题, 这目前我遇到的有两种:一是页面里有iframe,二是页面是table布局。而js里又操作了页面里的部分标签对象,这样就容易出问题。iframe里的页面还没加载完毕或者table里的内容还没显示完,js就开始执行了。
处理方法(本人习惯):
一、一般把处理当页的js放到该模板末尾,让js最后才执行。
二、在引用js文件时用defer属性,比如:<script src='common.js' defer="true"></script>,defer作用是加载完成页面元素后再执行该js脚本。

你可以按我说的改改代码,如果还不行,你最好把你认为js出错的代码贴出来,这样容易找到错误。或者你装个ie6下js调试工具Companion.JS 在ie6下锁定js错误!