【问题标题】:Browser Close Event in angular4angular4中的浏览器关闭事件
【发布时间】:2018-02-10 02:56:05
【问题描述】:

如何在 Angular 4.0.2 中检测浏览器关闭事件

我试过了

  1. @HostListener('window:unload', ['$event']) unloadHandler(event) { ... }

  2. @HostListener('window:beforeunload', ['$event']) beforeunloadHandler(event) { ... }

但不适合我。谁能帮我吗。如果我刷新页面,则此事件也会触发

Angular2/4 中需要单独的浏览器关闭事件

【问题讨论】:

标签: angular angular2-services angular2-directives


【解决方案1】:

如果你想关闭事件弹窗,你需要设置 $event.returnValue

Inside component

    @HostListener('window:beforeunload', ['$event'])
     public beforeunloadHandler($event) {
     $event.returnValue = "Are you sure?";
    }

【讨论】:

  • 我想从本地存储中清除令牌,我使用了上述方法,但是即使我刷新页面,它也会从本地存储中删除令牌。
  • window:beforeunload 是的,这个事件对于刷新和关闭很常见,它不包含任何相关信息来区分刷新和关闭
  • 根据我的研究,角度没有任何东西可以处理浏览器关闭事件,您可以使用 ngOnDestroy(): void { //您要清理的代码行 },但我认为 window:beforeunload 是在你的情况下更有用。
  • 唯一能做的事,绑定按键事件监听器并根据f5键码true/false设置标志,如果为false则不发送event.returnValue。
  • 即使浏览器的标签页关闭也会触发该事件。是否有任何生命周期钩子只有在整个浏览器关闭时才会触发
猜你喜欢
  • 2018-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-26
  • 1970-01-01
  • 2011-08-13
  • 1970-01-01
相关资源
最近更新 更多