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


09/09/2008 at 16:10
呵呵!那也不能骂它啊!它无辜的呢
回复
09/09/2008 at 17:50
恭喜!您这篇博文在圈子“中国设计师联盟”由“耕云轩主”加为精华博文!
回复
09/09/2008 at 19:38
我的就是firefox的浏览器~还可以哦
回复
09/10/2008 at 17:45
恭喜!您这篇博文在圈子“无嗔者”由“是我舍弃了你”加为精华博文!
回复
09/12/2008 at 19:09
晕“““
回复
09/12/2008 at 20:39
谢谢你啊
回复
09/20/2008 at 16:01
我也遇到过这种情况。IE …… 哎依 呀!!!!真累!
回复
10/08/2008 at 23:05
看来他们解析js是不一样的,学习了,谢谢!
回复
07/22/2009 at 17:01
真幽默 嘿嘿
回复
10/14/2009 at 18:03
可以让a.html加载完再加载b.html
回复
04/18/2010 at 20:02
没遇到过。IE里面B和C变成并列了?
回复
12/31/2011 at 1:18
囧,IE又声明了其美名啊.
回复
02/03/2012 at 14:16
这是设计的原因浏览器没关系。是技术人员手艺不行。参见博客,模块管理。
回复