在Javascript中,如何“清除”后面(历史记录-1)?

时间:2012-01-23 10:02:17

标签: javascript html css

当用户加载页面时,我立即将窗口重定向到另一个位置。

问题是,当用户点击回来时,它会返回执行重定向的页面。

我可以“取消”上一页的历史记录吗?那么当用户点击它时,它会返回两页而不是?

3 个答案:

答案 0 :(得分:92)

而不是使用window.location = url;重定向,

尝试:

window.location.replace(url);
  

使用replace()后,当前页面将不会保存在会话中   历史记录,意味着用户将无法使用“后退”按钮   导航到它。

答案 1 :(得分:8)

您可以使用location.replace将当前位置条目(重定向页面)替换为新目标条目(目标)。这要求您通过JavaScript而不是元标记或302进行重定向。例如:

// In the redirecting page
location.replace("path/to/target/page");

Live example | Live example source

答案 2 :(得分:4)

对于遇到此页面并寻找AngularJS方法来完成此操作(而不是javascript)的任何人,请使用$ location服务的replace()方法(documentation):

像往常一样使用$location.url('/newpath');$location.path('/newpath');进行角度重定向。然后在它之后添加$location.replace();。或者您可以链接这样的命令:

$location.url('/newpath').replace();