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

IT技术 javascript html css
2021-03-10 12:58:24

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

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

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

3个回答

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

尝试:

window.location.replace(url);

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

谢谢...我正在寻找这个。
2021-04-20 12:58:24
这适用于我可以控制加载的页面,但是对于您想要清除所有以前浏览(不同站点)的情况如何?我很懒,不想处理有意或故意使用后退按钮退出网络应用程序。
2021-05-01 12:58:24
对我来说很有魅力
2021-05-11 12:58:24
有没有办法在不加载定义的新页面的情况下做到这一点?
2021-05-15 12:58:24

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

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

活生生的例子| 实时示例源

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

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

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