javascript - Angular 捕获所有浏览器的后退按钮事件

标签 javascript angular google-chrome

我正在使用 Angular 创建项目。在我的项目中,我需要处理浏览器后退按钮。要求是当用户点击后退按钮时应该注销

Login Url 不同,dashboard 也不同。

下面是实现

//app.component.ts

@HostListener('window:popstate', ['$event'])
  onBrowserBackBtnClose(event: Event) {
    history.pushState('back', null, null);      
    // log out url
}

但是当用户刚登陆仪表板时,上面的代码不起作用

注意:只有当用户正在做一些事件时,如果用户没有做任何事件,事件就不会触发 [chrome]

最佳答案

我不喜欢使用 window:popstate,因为感觉它不应该在 Angular 中使用。监听 popstate 事件的更好方法是订阅位置服务:

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

constructor(private location: Location) { } 

ngOnInit() { 
    this.location.subscribe(event => {
           //do something
 });
}

一大优点:您可以随时退订。

请记住,与 window:popstate 一样,它不会直接检测您是返回还是返回。它仅在检测到路由参数已更改时触发,当用户点击第四个按钮时也会发生这种情况。

关于javascript - Angular 捕获所有浏览器的后退按钮事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69450806/

相关文章:

javascript - ProcessingJS 创建一个对象,其中包含随机数量的项目来绘制花朵

javascript - Angular 4 通用应用程序,带有 @angular/cli 和第三方(库/组件)编译

google-chrome - Chrome 的问题 - 嵌入 Windows 媒体播放器

javascript - createRange 在 Chrome 中不起作用

google-chrome - 谷歌浏览器 API : How do I add my app to show an icon on the "New Tab" (Apps) page?

javascript - 错误类型错误 : "this.canvas is undefined" | Problem with creating a chart with angular and chart. js

javascript - 单击时隐藏按钮

javascript - 如何将 jQuery FLOT 图表保存为 .png 或其他图像格式?

angular - 适用于 Angular 2+ 的具有多个日期选择的日历

javascript - Angular2使用javascript从外部文件加载组件