Javascript:刷新父页面而不完全重新加载

时间:2013-04-09 08:52:00

标签: javascript html

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

目前我正在这样做:

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

这很有效,但唯一的问题是它完全重新加载整个页面:重新下载所有的css&amp; javascipt等。

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

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

3 个答案:

答案 0 :(得分:7)

不要将true指定为reload,告诉它始终从服务器获取。并确保HTML,CSS和JavaScript的缓存标头设置正确,以便HTML总是被重新加载(而不是缓存),但CSS和JavaScript被缓存(或至少只通过If-Modified-Since有条件地检索)。

答案 1 :(得分:6)

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

window.location = window.location

或在你的情况下:

window.top.location = window.top.location

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

答案 2 :(得分:0)

使用:

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

必须使用哈希上的split,否则将不会刷新带有哈希的网址。

如果要在浏览器历史记录中保留以前的负载,请使用assign而不是replace

MDN表示,Opera目前不支持

href