在浏览器中禁用后页按钮

时间:2016-12-08 09:14:24

标签: angular angular2-routing

我使用typescript创建了带角度为2的路由的auth app。现在,我的任务已停用在浏览器中的后退按钮,从localhost/form1localhost/login;怎么实现这个?

3 个答案:

答案 0 :(得分:1)

您无法阻止后退按钮,因为它是浏览器行为。你可以做的是创建一个保护来处理每个请求,如果请求是加载/登录并且用户已经被记录,只需重定向到上一页。

答案 1 :(得分:0)

我在我的角度cordova应用程序中解决了这个问题,以防止app退出如下。与大多数评论相反,我发现我必须使用"文件"对象而不是"窗口"捕获后退按钮事件的对象

// Prevent from exiting app by hook into document backbutton
@HostListener('document:backbutton', ['$event'])
    onPopState(event) {
    alert('Start page');
}

组件中的用法

import { Component, HostListener  } from '@angular/core';

export class myComponent {
    constructor() {}

    // Prevent from exiting app by hook into document backbutton
    @HostListener('document:backbutton', ['$event'])
       onPopState(event) {
       alert('Start page');
    }
}

答案 2 :(得分:-1)

第1步:从角色commmon导入Locatoion

import {Location} from "@angular/common";

第2步:在构造函数中初始化

private commonService: CommonService

步骤3:在相应组件的ngOnInit中添加功能

this.location.subscribe(currentLocation => {
if (currentLocation.url === '*/basic-info*') {
    window.onpopstate = function (event) {
        history.go(1);
    }
}

});

注意:此处 / basic-info 将替换为您的路径。

如果第一次无效,请尝试添加外部订阅

let currentUrl = window.location.href;
let tmpVar = currentUrl.includes('/basic-info');
if (currentUrl.includes('/basic-info')) {
  window.onpopstate = function (event) {
    history.go(1);
  }
}