IFrame内容交换错误?

时间:2009-09-25 20:05:42

标签: javascript html firefox iframe

我有一个包含多个iframe的网页,包括广告感和各种共享按钮等第三方iframe。

在Firefox中,我注意到偶尔会交换这些iframe的内容,这样您就可以获得另一个iframe的广告意义广告。 iframe内容显示似乎完全随机。它似乎与缓存有关。

是否有人知道是什么导致这种情况,或者我可以采取哪些措施来防止这种情况发生?

5 个答案:

答案 0 :(得分:3)

如果有人在看,我能够追踪错误报告:

https://bugzilla.mozilla.org/show_bug.cgi?id=356558

这已经4年了,甚至看起来都没有证实。

答案 1 :(得分:3)

Mozilla错误报告中描述的解决方法对我有用:

<iframe src="webpage2.html?var=xxx" id="theframe"></iframe>

<script>
var _theframe = document.getElementById("theframe");
_theframe.contentWindow.location.href = _theframe.src;
</script>

答案 2 :(得分:1)

一个合理的答案是两个iframe具有相同的名称。我在conkeror(基于firefox)中经历了好几次,而且每次都是名字冲突。

答案 3 :(得分:0)

我现在一直在努力解决这个问题。问题在于firefox以及它缓存iframe内容的方式。这也不是随机的。没有什么可以防止不使用iframe。

您可以使用以下内容重新加载iframe:

var reloadIframes = function () {
    var a = window.frames, b = a.length
    while (b--) {
        a[b].src = a[b].src;
    }
}

如果是广告,则会导致双重展示,这会违反您的合同。

复制问题的简便方法是创建3个html文件。

<!--frame1.html-->
<html>
<body>
<h3>frame one</h3>
</body>
</html>

<!--frame2.html-->
<html>
<body>
<h3>frame two</h3>
</body>
</html>

<!--index.html-->
<html>
<body>
<iframe src="frame1.html"></iframe>
<iframe src="frame2.html"></iframe>
</body>
</html>

在Firefox中打开。然后切换第一帧和第二帧。

<!--index.html-->
<html>
<body>
<iframe src="frame2.html"></iframe>
<iframe src="frame1.html"></iframe>
</body>
</html>

刷新index.html。在清除缓存之前,不会交换iframe。

mozilla有一个错误,但目前没有人正在处理它。

答案 4 :(得分:0)

此问题可能与您的问题类似

尝试放

window.onload = yourcode; 

与身体卸载一起。

我在头部包含

的工具提示javascript
window.onload = initTip;

但与我的onload iframe冲突

<body onload = "parent.myframe.location='mypage.html'">

我的解决方案: 删除那个window.onload = initTip;从头部开始,然后将它们放入体内。

<body onload = "initTip(); parent.myframe.location='mypage.html'">

它可以在firefox上重载按钮