在页面还没有ready的时候就调用了htmlObject的appendChild或者innerHTML操作,这样会在IE上弹出一个对话框:“Internet Explorer无法打开站点,已终止操作”
解决方法有两个:
(1)在appendChild或者innerHTML操作处判断document.readyState==”complete”, 若为否,则setTimeout若干秒之后重新作这个操作。
但是,此属性只对ie,opeara有效,ff的document没有readyState属性,永远是undefined.
(2)在script中使用defer属性。意在页面加载完毕后再执行脚本,这样可以避免找不到对象的问题。defer不会考虑外部文件是否全部下载完,只会判当前页面是否全部加载完成。并且,有defer标签的代码块里不能写document.write方法
使用ajax时发生错误的解决方案:在appendChild或者innerHTML操作处判断document.readyState==”complete”, 若为否,则setTimeout若干秒之后重新作这个操作。
如果要加载独立的脚步文件 可靠的做法是在_onload事件中调用,兼容firefox的一种写法如下:
以下为引用的内容:
<script type=”text/javascript”>
functi_on init(arg){
//do sth.
}
if(typeof(document.body._onload)==”undefined”)
window._onload=to_do(arg);
else
document.body._onload=new Functi_on(’to_do(arg);’);
</script>