刷新 iframe

Posted

技术标签:

【中文标题】刷新 iframe【英文标题】:Refresh an iframe 【发布时间】:2011-03-15 18:21:21 【问题描述】:

如何? 例如:

<iframe src="http://google.com"></iframe>

我点击这个 iframe 中的“视频”,然后点击一个按钮来,我希望在 时出现在那个“视频”页面上。

【问题讨论】:

【参考方案1】:

由于单一来源政策,您无法刷新其中的内部文档。

您是否尝试过更改 iframe 的 src 属性并添加随机 GET 字符串以强制重新加载?

这应该可行:

<iframe id="myiframe" src="http://google.com"></iframe>

document.getElementById("myiframe").src = "http://www.google.com?"+(+new Date());

【讨论】:

+1 - 我认为您不需要随机字符串。以防万一,我编辑了您的帖子以附加+new Date(),这会将当前时间转换为一个数字。不是随机的,但如果你不是每毫秒刷新几次,那么它是独一无二的 :-) Have you tried changing the iframe's src property,是的,但是如何在哪个页面上找到iframe? @lam 通过查询src 属性?但是,如果用户已导航到 iframe 中的另一个位置,则这是不可能的。在这种情况下,AFAIK,没有刷新父文档就无法刷新 iframe。【参考方案2】:

如果当前 iframe href 是针对同一个域(单一来源策略)的,您只能使用以下代码重新加载:

<iframe id="myIframe" src="http://yourdomain.com"></iframe>

document.getElementById('myIframe').contentWindow.location.reload(true);

或者获取当前的href

var currentHref = document.getElementById('myIframe').contentWindow.location.href;

【讨论】:

【参考方案3】:

我认为只需更新 hre/src 即可。所以点击按钮如下:

window.frames.iframeName.location.href = "新网址"

【讨论】:

【参考方案4】:

我的解决方案是删除以前的 iframe 并使用新的 src 附加新的 iframe。

【讨论】:

以上是关于刷新 iframe的主要内容,如果未能解决你的问题,请参考以下文章

asp.net iframe不刷新怎么办?

Vue中iframe保持活动状态(不刷新)

iframe 和ajax局部刷新的区别

iframe怎么样才能不用手动刷新,就可以显示新的页面?急...

刷新 iframe 而不刷新整个页面

怎么禁止iframe父页面刷新页面