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

如何刷新 iframe? 例如:

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

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

【问题讨论】:

    标签: javascript iframe refresh


    【解决方案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。

        【讨论】:

          猜你喜欢
          • 2012-08-20
          • 2019-07-17
          • 2016-05-17
          • 1970-01-01
          • 1970-01-01
          • 2011-04-28
          • 2012-08-13
          • 2013-03-20
          相关资源
          最近更新 更多