【问题标题】:Refresh page within an iframe在 iframe 中刷新页面
【发布时间】:2012-06-18 02:09:15
【问题描述】:

我有一个应用程序(facebook 画布应用程序,facebook 在 iframe 中显示该应用程序)

当用户单击链接时,我希望能够刷新页面。

我用来刷新页面的代码如下:

window.location.reload(true);

使用 firefox 可以正常工作,它只会刷新 iframe 中的当前页面。所以我很高兴。

使用 IE,整个页面都会被刷新,这会导致用户进入应用程序的开头。

我怎样才能避免这种情况?

我只想刷新当前页面而不是当前 url。

apps.facebook.com/foo/

是应用程序的 URL,在 URL 中,用户单击链接会转到一个页面,然后在该页面内我需要刷新该页面以更新一些计数器。但是当我刷新整个请求时转到apps.facebook.com/foo/

有什么想法吗?

【问题讨论】:

  • 试过document.location.reload(true);?
  • 同理,刷新整个页面
  • 我一直在IE的iframe中使用location.reload就好了...window指的是iframe的内容窗口还是包含iframe的窗口?
  • 我其实试过这个 window.location.href = "/home/browse";和工作

标签: javascript html facebook internet-explorer refresh


【解决方案1】:

你可以使用这个技巧:

  <button onclick="window.parent.location = document.referrer">
    Reload
  </button>

【讨论】:

    【解决方案2】:

    如http://www.hyperorg.com/blogger/2007/03/24/refresh-an-iframe-in-ie-anyone/中所述

    HTML

    <div id="wrapper"></div>
    

    Javascript

    function reload () {
        var fr=document.getElementById('tehframe');
        if(fr!=null) document.getElementById("wrapper").removeChild(fr);
        var iframehtml="<iframe id='tehframe' src=…></iframe>";
        document.getElementById("wrapper").innerHTML=iframehtml;
    }
    

    然后只需在开始时以及想要加载它时调用reload()。

    【讨论】:

    • 我其实试过这个 window.location.href = "/home/browse";和工作
    【解决方案3】:
    var oiframe = document.getElementById('myiframe');
    
    oiframe.contentWindow.location.reload(true);
    

    【讨论】:

      【解决方案4】:

      你可以使用window.location.href = window.location.href

      【讨论】:

        【解决方案5】:

        您可以更改 iframe 的 url 并通过向 url 添加一个无意义的参数来导致刷新,例如 foo 变为 foo?bar

        【讨论】:

        • 我实际上试过这个window.location.href = "/home/browse"; 并且工作过
        猜你喜欢
        • 2011-04-28
        • 2015-09-14
        • 2013-03-20
        • 2014-03-23
        • 1970-01-01
        • 2013-02-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多