firefox BUG for innerHTML iframe TAG

时间:2009-09-24 07:58:47

标签: javascript

在没有下载完成之前使用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>

2 个答案:

答案 0 :(得分:1)

http://www.yozooffice.com/framemix.html没有必要在IE中使用大bmp;

答案 1 :(得分:0)

在FF 3.5.3

上工作正常

管理通过大量点击重现它。 好像FireFox中的一个bug给我。

每次都可以设置.src

,而不是每次重新创建iframe