javascript加载顺序的BUG

今天遇到一个棘手的问题。一开始想偏了,仅以为是IE这个变态浏览器解析不出来TABLE内JS的高度,后来发现是错怪了它,跟什么高度没关系。再后来又发现,没必要抱歉,这种变态浏览器,就应该被骂。

javascript加载顺序的BUG:
出现这种BUG的几率,应该是比较罕见。首先是一个内容页面,【a.html】,它的里面包含了一个【b.js】
<SCRIPT src=”b.js” type=text/javascript></SCRIPT>
,然后【b.js】里面,包含了一个【c.js】document.writeln(‘<script type=”text/javascript”>’);……逻辑暂时还没有混乱呢,介于我表达能力不强的缘故,估计一会就该混乱了。那……那画个图吧……好久没用photoshop呢……

页面用大方块表示,JS用大圆团表示……

从图来看,能很清楚的知道谁包含谁。像firefox和chrome这样的“非脑残”浏览器都能正常解析。
但是,IE这种“脑残”浏览器,解析的时候,要先加载完【b.js】,完事后,再去加载【c.js】,导致如下所示的结果:

查了很久,这样JS包含JS导致加载出错的情况,确实有解决的办法,前提是【a.html】我要有编辑的权限。时间又很紧张,中午饭的时间都赔进去了,还是没研究出来。只好选了折中的方法,建立中转页面。也就是在【b.js】里边写入一个新加的iframe页面,document.writeln(‘<iframe src=”transfer.html” width=”100%” height=”69px”  scrolling=”No” frameborder=”0″></iframe>’);
然后,在iframe页面中,再嵌入【c.js】……这样,通过js-html-js的中转,来避免js-js嵌入出现的问题。

13 条评论 《javascript加载顺序的BUG》

  1. 呵呵!那也不能骂它啊!它无辜的呢

    回复

  2. Gravatar耕云轩主

    恭喜!您这篇博文在圈子“中国设计师联盟”由“耕云轩主”加为精华博文!

    回复

  3. GravatarKDM精灵公主

    我的就是firefox的浏览器~还可以哦

    回复

  4. Gravatar是我舍弃了你

    恭喜!您这篇博文在圈子“无嗔者”由“是我舍弃了你”加为精华博文!

    回复

  5. 晕“““

    回复

  6. 谢谢你啊

    回复

  7. 我也遇到过这种情况。IE …… 哎依 呀!!!!真累!

    回复

  8. Gravatar绿色空气

    看来他们解析js是不一样的,学习了,谢谢!

    回复

  9. Gravatar索菲亚方杯

    真幽默 嘿嘿

    回复

  10. 可以让a.html加载完再加载b.html

    回复

  11. 没遇到过。IE里面B和C变成并列了?

    回复

  12. 囧,IE又声明了其美名啊.

    回复

  13. 这是设计的原因浏览器没关系。是技术人员手艺不行。参见博客,模块管理。

    回复

发表评论 (无需注册)

支持CTRL+ENTER快捷提交
崔凯博客
Powered by WordPress | Theme by ck web design | TOP 顶部
Copyright © 崔凯博客 All rights reserved. 京ICP备09029324号.