angular4中的浏览器关闭事件

Posted

技术标签:

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

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

我试过了

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

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

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

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

【问题讨论】:

看这里:***.com/questions/35922071/… 【参考方案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。 即使浏览器的标签页关闭也会触发该事件。是否有任何生命周期钩子只有在整个浏览器关闭时才会触发

以上是关于angular4中的浏览器关闭事件的主要内容,如果未能解决你的问题,请参考以下文章

对于给定的浏览器,我如何确定哪些元素支持哪些事件? [关闭]

监听浏览器关闭事件

vue 监听浏览器关闭事件

监听浏览器关闭事件的解决方案

如何用JS捕捉 浏览器关闭事件,我想在浏览器关闭的时候记录一些日志。要兼容Firefox和IE 6、7、8 !3Q....

js 浏览器窗口 刷新关闭事件