在JavaScript中,我如何“清除”后面(历史-1)?
当用户加载页面,我立即做一个窗口redirect到另一个位置。
问题是,当用户点击后,它会回到做redirect的页面。
我可以“取消”上一页的历史吗? 所以,当用户点击回来,它返回两页,而不是?
而不是使用window.location = url;
redirect,
尝试:
window.location.replace(url);
在使用replace()之后,当前页面将不会保存在会话历史logging中,这意味着用户将无法使用Backbutton导航到该页面。
您可以使用location.replace
来replace当前位置条目(redirect页面)与新的(目标)。 这就要求你通过JavaScript来进行redirect,而不是使用meta标签或302.例如:
// In the redirecting page location.replace("path/to/target/page");
现场示例 | 现场示例源文件
对于任何人来到这个页面,并寻找AngularJS的方式来完成这个(而不是JavaScript),使用$位置服务的replace()方法( 文档 ):
使用$location.url('/newpath');
或$location.path('/newpath');
正如你通常会做的angular度redirect。 然后只需添加$location.replace();
紧随其后。 或者你可以像这样链接命令:
$location.url('/newpath').replace();