我有一个包含多个iframe的网页,包括广告感和各种共享按钮等第三方iframe。
在Firefox中,我注意到偶尔会交换这些iframe的内容,这样您就可以获得另一个iframe的广告意义广告。 iframe内容显示似乎完全随机。它似乎与缓存有关。
是否有人知道是什么导致这种情况,或者我可以采取哪些措施来防止这种情况发生?
答案 0 :(得分:3)
答案 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;
与身体卸载一起。
我在头部包含
的工具提示javascriptwindow.onload = initTip;
但与我的onload iframe冲突
<body onload = "parent.myframe.location='mypage.html'">
我的解决方案: 删除那个window.onload = initTip;从头部开始,然后将它们放入体内。
<body onload = "initTip(); parent.myframe.location='mypage.html'">
它可以在firefox上重载按钮