最近写程序遇到这样一个很奇怪的问题,在同学的机子上正常,在我这就报“……无法打开站点……,……已终止操作”这样的错误,上网查了一下,找到个解决方法不错
我的是用第二种解决的
(1)在appendChild或者innerHTML操作处判断document.readyState=="complete", 若为否,则setTimeout若干秒之后重新作这个操作。但是,此属性只对ie,opeara有效,ff的document没有readyState属性,永远是undefined.
(2)在script中使用defer属性。意在页面加载完毕后再执行脚本,这样可以避免找不到对象的问题。defer不会考虑外部文件是否全部下载完,只会判当前页面是否全部加载完成。并且,有defer标签的代码块里不能写document.write方法
例如:<script language="javascript" type="text/javascript" defer="defer" src="<%=basePath %>js/DatePicker/WdatePicker.js" ></script>
(3)标签是否没有闭合
原来同学用的浏览器是IE8,可能对这样的错误已经做了处理,所以未加defer前也是正常,而我的用的是万恶的IE6,所以出错了。
另外,如果类似第二种方法还出错的话,请一定记得引用的时候加上<%=basePath %>!!
最近写程序遇到这样一个很奇怪的问题,在同学的机子上正常,在我这就报“……无法打开站点……,……已终止操作”这样的错误,上网查了一下,找到个解决方法不错
我的是用第二种解决的
(1)在appendChild或者innerHTML操作处判断document.readyState=="complete", 若为否,则setTimeout若干秒之后重新作这个操作。但是,此属性只对ie,opeara有效,ff的document没有readyState属性,永远是undefined.
(2)在script中使用defer属性。意在页面加载完毕后再执行脚本,这样可以避免找不到对象的问题。defer不会考虑外部文件是否全部下载完,只会判当前页面是否全部加载完成。并且,有defer标签的代码块里不能写document.write方法
例如:<script language="javascript" type="text/javascript" defer="defer" src="<%=basePath %>js/DatePicker/WdatePicker.js" ></script>
(3)标签是否没有闭合
原来同学用的浏览器是IE8,可能对这样的错误已经做了处理,所以未加defer前也是正常,而我的用的是万恶的IE6,所以出错了。
另外,如果类似第二种方法还出错的话,请一定记得引用的时候加上<%=basePath %>!!
本文探讨了在不同浏览器中遇到的脚本加载问题,提供了三种解决方案:使用`document.readyState`判断、`defer`属性及确保标签正确闭合。特别关注了IE6与IE8在处理此类问题上的差异。
1301

被折叠的 条评论
为什么被折叠?



