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嵌入出现的问题。

崔凯博客
Powered by WordPress | Theme by ck web design | TOP 顶部
Copyright © 崔凯 All rights reserved. 蜀ICP备12025891号.