因为在页面还没有ready的时候就调用了htmlObject的appendChild或者innerHTML操作,这样会在IE上弹出一
个对话框:“Internet Explorer无法打开站点XXX,已终止操作”
解决办法大概为以下两点:
(1)在appendChild或者innerHTML操作处判断document.readyState=="complete", 若为否,则setTimeout若
干秒之后重新作这个操作。但是,此属性只对ie,opeara有效,ff的document没有readyState属性,永远是
undefined.
(2)在script中使用defer属性。意在页面加载完毕后再执行脚本,这样可以避免找不到对象的问题。defer不
会考虑外部文件是否全部下载完,只会判当前页面是否全部加载完成。并且,有defer标签的代码块里不能写
document.write方法
第二种方法,用在加载外部文件时,效果并不好,可能又引起其他意想不到的问题
所以采用了第一种方法,采用递归的方法
function mytest(){
if(document.readyState=="complete")
//执行函数
else
setTimeout("mytest()",1000)
}