请先把问题看完,十分感谢。
假设:
1.页面加载过程中会在一组iframe框架前N(N>0)行代码运行一个js function(假设为fun())。
2.该组iframe为连续的,比如:
<div id="cont"></div>
<div class="left">
<iframe src="1.swf" id="iframe_1"></iframe>
</div>
<div class="middle">
<iframe src="2.swf" id="iframe_2"></iframe>
</div>
<div class="right">
<iframe src="3.swf" id="iframe_3"></iframe>
</div>
3.fun()中包含动态加载js(在head下append一个新的script结点,取其中的变量)。
问题:当fun()中有appendChild Dom对象的innerHTML中包含图片时(见示例),初次加载没有任何问题,但是刷新(F5或者点浏览器刷新按钮)会有很大的概率(60%)导致上述iframe组加载出乱,即,可能会出现 iframe_2,iframe_1加载了1.swf,iframe_3加载了3.swf.
dom加载示例
var doc = document.CreateElement("DIV");
document.getElementById("cont").appendChild(doc);
doc.innerHTML =="<img src=\"1.gif\">";
备注,此问题仅在ie下出现,在360安全浏览器出现概率很高,且仅在静态页(动态页本机调试没有出现此类问题,至于在服务器上没有进行全面测试)。
我的临时解决方法,1:把要添加的img先放在层cont里面,然后每次修改它的src。2,将iframe组中的没有iframe直接用document.write在页面上写出来。 以前两种方法经测试均有效(实现一种即可)。
问有人了解这方面的缘由吗?或者说说你的看法。(此iframe为第三方的广告代码,请考虑过是否是他的代码问题,但简单测试过似乎没有影响,所以偏向于是自己代码(fun())的问题)。