nasdaqhe's blog

被生活强jian着
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Internet Explorer无法打开站点,已终止操作

Posted on 2009-07-22 23:08  nasdaqhe  阅读(460)  评论(0编辑  收藏  举报

在页面还没有ready的时候就调用了htmlObject的appendChild或者innerHTML操作,这样会在IE上弹出一个对话框:“Internet Explorer无法打开站点,已终止操作”

  在网上搜索了一下,解决方法大概为以下两点:

  (1)在appendChild或者innerHTML操作处判断document.readyState=="complete", 若为否,则setTimeout若干秒之后重新作这个操作。但是,此属性只对ie,opeara有效,firefox的document没有readyState属性,永远是undefined。

  (2)在script中使用defer属性。意在页面加载完毕后再执行脚本,这样可以避免找不到对象的问题。defer不会考虑外部文件是否全部下载完,只会判当前页面是否全部加载完成。并且,在有defer标签的代码块里不能写document.write方法。以下为要注意的问题:

1.使用了defer="true"属性的script标签应该放在<head></head>之间。如果放在Body之间可能会得不到预期的效果(我试过如果把script放body里,在页面加载的第一次不会起defer的作用,但之后的刷新defer却起作用)。

2.使用了defer="true"属性的script标签里面包含的脚本在运行的过程中,不能使用document.write()方法向页面输出内容。因为设置了defer="true"的脚本是页面加载之后才加载并渲染的.如果这时候使用document.write()方法,会把之前的页面内容都清掉(当然,如果有这个需要的情况除外)。