在网上搜索了一下,解决方法大概为以下两点:
(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却起作用)。






