当用户加载页面时,我立即将窗口重定向到另一个位置。
问题是,当用户点击返回时,它会返回到执行重定向的页面。
我可以“取消”上一页的历史记录吗?这样当用户点击返回时,它会返回两页?
当用户加载页面时,我立即将窗口重定向到另一个位置。
问题是,当用户点击返回时,它会返回到执行重定向的页面。
我可以“取消”上一页的历史记录吗?这样当用户点击返回时,它会返回两页?
而不是使用window.location = url;
重定向,
尝试:
window.location.replace(url);
使用 replace() 后,当前页面将不会保存在会话历史记录中,这意味着用户将无法使用后退按钮导航到它。
您可以使用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();