2

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

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

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

window.location.reload(true);

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

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

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

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

apps.facebook.com/foo/

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

有任何想法吗?

4

5 回答 5

7
var oiframe = document.getElementById('myiframe');

oiframe.contentWindow.location.reload(true);
于 2013-06-04T07:23:30.677 回答
5

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

于 2012-06-15T03:51:01.143 回答
3

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=…&gt;</iframe>";
    document.getElementById("wrapper").innerHTML=iframehtml;
}

然后只需reload()在开始时调用,无论何时要加载它。

于 2012-06-15T01:07:43.633 回答
0

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

于 2012-06-15T01:01:44.387 回答
0

你可以使用这个技巧:

  <button onclick="window.parent.location = document.referrer">
    Reload
  </button>
于 2019-11-20T10:54:32.993 回答