在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();