当我更改DOM在DOM中的位置时,如何停止IFrame重新加载?

Jam*_*ley 15 javascript iframe firefox google-chrome

当我改变它在DOM中的位置时,有没有办法阻止Iframe重新加载它的内容?简单的例子:

<script type="text/javascript">
function moveiframe() {
    var dest = document.getElementById('newparent');
    dest.appendChild(document.getElementById('googleframe'));
}
</script>
<iframe src="http://www.google.com" id="googleframe"></iframe>
<input type="button" onclick="moveiframe()" value="Move" />
Run Code Online (Sandbox Code Playgroud)

单击"移动"按钮可更改iframe的父级,并重新加载其内容(在Firefox和Chrome中,但不是IE).

我们欢迎所有的建议!

[更新了背景信息]

我正在页面底部的占位符div中加载网站的广告(以防止广告加载阻止页面加载) - 然后在加载后将他们写入的div转移到正确的容器中.这一切都很有效......除非获得投放的广告使用iframe(例如google adsense),在这种情况下,广告会加载两次并且服务混乱.

Nic*_*ole 11

考虑到测试用例的简单性,看起来可用于将元素放入另一个元素的唯一方法将始终强制重新加载内容.

[ 编辑 ]看到你想要做的事后,你可以尝试一些事情:

  1. 所有广告都可以在IFRAME(在您自己的网站上)中提供,这些广告不会阻止加载页面,并且可以立即放置在正确的位置.
  2. 如上所述,IFRAME不会阻止加载页面,因此如果它们是IFRAME,您可以立即将广告放在适当位置,如果它们是其他内容,则将它们加载到底部.当然,如果慢速部分在您知道是否要获得IFRAME之前,这将不起作用.
  3. 您可以将内容保留在占位符DIV中,但是当它完成加载时,只需在页面中的正确位置重新定位(使用CSS绝对定位).不是最优雅的解决方案,但应该工作正常.