重定向并重新加载即使相同的页面

时间:2015-12-27 06:17:13

标签: javascript jquery redirect reload

确保页面重定向到其他页面并确保即使目标页面是当前页面也会刷新页面的最简单/最佳方法是什么。

我在页面www.website.com上有一些功能,可以将用户重定向到URL www.website.com/#tag。然后,我有一个onload甚至检查#tag的URL并在该标记存在时执行某些操作。

但是,如果用户已在页面www.website.com/#tag上,则程序会中断。确保用户始终通过此功能重定向到www.website.com/#tag的最佳方法是什么,就好像他们刚刚从其他页面到达网站(比如www.google.com)。 / p>

我目前正在重定向:

window.location.replace(www.website.com/#tag);

我知道有一百万种方法可以重新加载页面。我一直在使用:

location.reload();

4 个答案:

答案 0 :(得分:0)

尝试这样的事情:你可以简单地将哈希附加到它然后重新加载:

 if(window.location.href.indexOf("#tag") == -1){
    window.location.href += "#tag";
    location.reload(true);
    }

答案 1 :(得分:0)

导航到当前位置但使用新的或更改的#anchor可能导致浏览器不重新加载页面,而是滚动到锚点。通常这实际上是期望的行为,因为它启用了我们熟悉的简单的基于锚的链接。

我在至少一个应用程序中通过切换到重新加载行为来解决它,如果基础路径没有改变,同时检查哈希:

var new_path, old_path;
old_path = window.location.origin + window.location.pathname;
window.location.href = location;
new_path = window.location.origin + window.location.pathname;
if (old_path === new_path && window.location.hash.length > 0) {
  window.location.reload();
}

我不需要处理查询字符串,但window.location.search会在必要时提供。

答案 2 :(得分:0)

此方法使用jQuery,但原理是,读取我们将要更新的属性,如果不会发生任何变化,请重新加载而不是设置属性。

round

答案 3 :(得分:0)

尝试在同一页面上重定向。

window.location.reload(true)