6

用户通过花式框(javascript)弹出窗口登录后,我希望重新加载父页面,以便他们可以访问登录的功能。

目前我正在这样做:

<a href="javascript:window.top.location.reload(true)" class="continue">Continue</a>

这很好用,但唯一的问题是它完全重新加载了整个页面:重新下载所有 css 和 javascipt 等。

我要做的就是正常重新加载页面,而不是完全刷新。我怎样才能做到这一点?

(我不知道确切的 URL,因为登录可以通过 fancybox 从任何页面完成,所以我无法对 URL 进行硬编码。)

4

2 回答 2

14

我在facebook graph api中看到的另一种重新加载页面的方法如下:

window.location = window.location

或者在你的情况下:

window.top.location = window.top.location

此解决方案在不尝试重新发送POST请求的情况下重新加载页面。可能有用。有关更多信息,请查看以下SO 问题

于 2013-04-09T08:58:06.773 回答
0

采用:

location.replace(location.href.split('#')[0]);

on hash 是必需的split,否则不会刷新带有 hash 的 url。

如果您想在浏览器历史记录中保留之前的加载,请使用assign而不是replace.

hrefMDN称,Opera 目前不支持。

于 2020-02-17T18:21:04.213 回答