angular - 如何在 angular2 中重置浏览器的导航历史记录?

标签 angular angular2-routing

我想清除 angular2 中的浏览器导航历史记录,以便在用户导航到特定页面(我感兴趣的页面)后,不应通过单击浏览器后退或下一步按钮来后退或前进..... ..

现在我尝试像这样导入 Angular2 Location

 import {Location} from "angular2/router";

并像这样使用它来防止导航

 this._location.replaceState('/'); //clear browser navigation history and reset it to root /
 this._router.navigateByUrl('/home');

注意:假设 Location 和 Router 被正确注入(inject)

但它不起作用。

最佳答案

浏览器好像不支持这个。参见 JS - window.history - Delete a state

最近创建了一个允许传递自定义 HistoryStrategy 的问题,它应该允许您管理将 URL 推送到历史记录的方式和时间。

另见 https://github.com/angular/angular/issues/3481

关于angular - 如何在 angular2 中重置浏览器的导航历史记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35864294/

相关文章:

Angular 2 Material 设计 <mat-expansion-panel> 全部展开/全部折叠

javascript - 为什么仅当我单击按钮两次时才会显示我的 mat-error?

angular2 无法相对于父路由导航

Angular2 路由器 - 使用不同的参数导航到当前页面

ASP.NET 5 + Angular 2 路由(模板页面不重新加载)

angular 6 queryParamsHandling合并和保留之间的区别

Angular 2 - 创建从数据库中提取的全局变量

angular - Angular 2 + 日期过滤器上的 ag-grid 不起作用

javascript - 未捕获( promise ): TypeError: Cannot read property 'component' of null

angular - 如何在 Angular 2 中使用路由器链接在元素内部建立链接