在没有下载完成之前使用innerHTML会导致页面加载iframe障碍
在下面的示例中,首先点击“openA”(谷歌页面),然后点击“openB”(雅虎页面),然后点击“openA”,然后在错误的雅虎页面上显示一个窗口。
Chrome和IE中的BUG不存在。
如何避免这个问题?
BUG示例代码:
<HTML>
<HEAD>
<script>
function openA(){
var winObj=document.getElementById("win_A");
if(winObj==null){
winObj=document.createElement('div');
winObj.id="win_A";
winObj.style.position="absolute";
winObj.style.left="0";
winObj.style.top="200";
winObj.style.height="300";
winObj.style.width="300";
winObj.style.border="1px solid red";
document.body.appendChild(winObj);
}
document.getElementById("win_A").innerHTML=("<iframe src='http://www.google.com/'></iframe>");
}
function openB(){
var winObj=document.getElementById("win_B");
if(winObj==null){
winObj=document.createElement('div');
winObj.id="win_B";
winObj.style.position="absolute";
winObj.style.left="350";
winObj.style.top="200";
winObj.style.height="300";
winObj.style.width="300";
winObj.style.border="1px solid red";
document.body.appendChild(winObj);
}
document.getElementById("win_B").innerHTML=("<iframe src='http://www.yahoo.com/'></iframe>");
}
</script>
</HEAD>
<BODY>
<INPUT TYPE="button" VALUE="openA" ONCLICK="openA()"><INPUT TYPE="button" VALUE="openB" ONCLICK="openB()">
<script>document.write("<iframe src=\"http://www.chaozh.cn/Iheeo_pic/200961017195991087.bmp?"+new Date()+"\"></iframe>");</script>
<INPUT TYPE="button" VALUE="Reload" ONCLICK="location.href=location.href;">
</BODY>
</HTML>
</pre>
答案 0 :(得分:1)
http://www.yozooffice.com/framemix.html没有必要在IE中使用大bmp;
答案 1 :(得分:0)
在FF 3.5.3
管理通过大量点击重现它。 好像FireFox中的一个bug给我。
每次都可以设置.src
?