首页 > 解决方案 > 如何限制用户在浏览器中按下返回按钮 | 角度 6

问题描述

我在我的项目中使用 Angular 6。我需要限制用户点击浏览器中的后退按钮并显示警报消息。

标签: angularbrowser

解决方案


您需要编写一个类来实现“ CanDeactivate ”接口,您可以在其中处理事件。尝试在后退按钮事件中使用location.go()重定向到活动 URL 本身。

location.go('getTheCurrentPathToRedirect');

像下面这样的东西:

export class CanDeactivateBack implements CanDeactivate<any> {
    constructor(public location: Location, public router: Router) {}
    canDeactivate(component: any, currentRoute: ActivatedRouteSnapshot): boolean {
        //YourConditionIfBackButttonPress - check for the history back click
        if (YourConditionIfBackButttonPress) {
            let urlPath = this.router.createUrlTree([], currentRoute);
            let curUrlPath = urlPath.toString();
            this.location.go(curUrlPath);
            return false;
        } else {
            return true;
        }
    }
}

我没有运行上面的代码。它只是一个想法,所以你可以开始。让我稍后检查并更新。


推荐阅读