当用户加载页面时,我立即将窗口重定向到另一个位置。
问题是,当用户点击回来时,它会返回执行重定向的页面。
我可以“取消”上一页的历史记录吗?那么当用户点击它时,它会返回两页而不是?
答案 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");
答案 2 :(得分:4)
对于遇到此页面并寻找AngularJS方法来完成此操作(而不是javascript)的任何人,请使用$ location服务的replace()方法(documentation):
像往常一样使用$location.url('/newpath');
或$location.path('/newpath');
进行角度重定向。然后在它之后添加$location.replace();
。或者您可以链接这样的命令:
$location.url('/newpath').replace();