都是defer惹的祸

今天在做Web开发时遇到一个非常奇怪的问题,一行代码居然浪费了我一个多小时的宝贵时间,还好最终顺利解决。
问题是这样的:当我在JS的 head标签里加入<script language="javascript" type="text/javascript" src="${contextPath}/js/My97DatePicker/WdatePicker.js"></script> 这行javascript代码后,发现用IE访问该页面时会弹出错误对话框,提示“Internet Explorer无法打开站点,已终止操作”,而使用Firefox则一切正常。由于目前在我国的主流浏览器仍是IE,所以这是个相当严重的问题,必须立 即解决。在对程序进行调试检查后,我把问题定位在了这行日期选择的JS代码上。难道是因为我使用的IE版本过低?而在Firefox3.5上一切正常更增 大了这种可能性。用IE 7和IE 8测试过后,彻底排除了这种可能。难道${contextPath}与程序其它部分冲突了?不是,去掉这行JS,其它的JS能正常运行!难道这行JS的内 容与程序冲突了?不是,这个日期插件目前非常流行,而且我也特意做了一个简单的demo测试过,没问题。既然其它的JS运行正常,是不是因为在页面未加载 完毕时就执行JS脚本导致对象实例找不到的原因?于是尝试在JS代码里加入defer="defer"。问题成功解决!
再次感受到了代码调试与排错的痛苦,也再次享受了成功带来的喜悦……

This entry was posted in Java and tagged . Bookmark the permalink.

发表评论

您的电子邮箱不会被公开。 标记为 * 的区域必须填写

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>