IE6下Javascript第一次不执行,刷新后才执行

时间: 2009-9-28 - 分类: JavaScript - 评论: 2 - 阅读: 1,907 次

前段时间在整理fckeditor的一个相关项目时候发现,编辑器里的iframe在第一次加载的显示不出来,显示空白,但是很奇怪的,刷新就可以正常显示了。一开始以为这只是IE6下iframe加载的bug,但是最后结果发现这是IE6下Javascript延迟加载的bug。

这个bug只存在于IE6。google搜索一番,目前对于此bug没有明确的定论,难以重现,但是经常的情况就是,有些脚本执行,IE6需要采用setTimeout延迟加载才可以正常的执行。我个人猜测的像类似iframe这些动态加载的项,可能会造成IE6出现这个问题,或者像不同的frame框架同时加载执行Javascript也可能导致。

解决的方法就是将你要执行的Javascript,放在setTimeout(”,0)里面,这样IE6就可以正常运行了。

此外,调试的时候还发现,如果在代码中加入一个alert,Javascript也会被执行,但是去掉alert代码又不会执行,IE6真是强大的存在啊。

2 个评论

  1. fangyuqiang - 2010年6月4日 5:46 下午

    试过另外一种方式了吗?插入一个alert后会执行吗?

  2. pader - 2010年5月31日 5:48 下午

    兄弟啊,我已经被这个问题折磨了好几天了, setTimeout 0 也不行啊,100也不行啊,我要崩溃了。
    别的浏览器也正常,IE6下非要刷新一下,活着有什么意思啊。

发表评论