看到这个对话框,谁都会骂微软的娘,妈的,又来浪费老子时间!不过我们骂也就是出出气而已,大部分人群智商比较低,造成了微软市场运作的成功。
关于这个问题比较合理的解释,这里有一个:
在页面还没有ready的时候就调用了htmlObject的appendChild或者innerHTML操作,这样会在IE上弹出一个对话框:“Internet Explorer无法打开站点,已终止操作”
解决方法有两个:
- 在appendChild或者innerHTML操作处判断document.readyState==”complete”, 若为否,则setTimeout若干秒之后重新作这个操作。
但是,此属性只对ie,opeara有效,ff的document没有readyState属性,永远是undefined.
- 在script中使用defer属性。意在页面加载完毕后再执行脚本,这样可以避免找不到对象的问题。defer不会考虑外部文件是否全部下载完,只会判当前页面是否全部加载完成。并且,有defer标签的代码块里不能写document.write方法
和一般的javascript语法错误不一样,即使启用了脚本调试,IE也不会让你去调试这个错误。所以看到这个对话框,你就应该检查哪些javascript语句在文档还没有load完成时执行了一些dom操作。
除了上文提到的两种办法,当然也可以把这些操作放在页面的onload事件处理中执行。