【问题标题】:Angular 4: Identify browser/tab close event and page refresh eventAngular 4:识别浏览器/标签关闭事件和页面刷新事件
【发布时间】:2018-09-09 23:14:58
【问题描述】:

我去了这个链接How can I handle browser tab close event in Angular? Only close, not refresh

但我不知道如何在 Angular 4 中实现这一点。

我无法确定页面何时刷新以及标签或浏览器何时关闭。

因为在这两种情况下它都会触发“window:unload”和“window:beforeunload”事件,因此很难识别。

实际上,我想在浏览器或选项卡关闭时触发注销事件,但在刷新时也会触发。

以下是我的代码。

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

任何输入/方向/帮助将不胜感激。

【问题讨论】:

标签: angular


【解决方案1】:

Unload or beforeunload

在卸载前使用。对于您的情况,它应该足够了,您将在其中发送请求。

在我需要弹出自定义对话框的情况下,确认不会阻止刷新/关闭选项卡事件。 (return false 留给我默认对话框)

【讨论】:

  • 感谢您的回复,但我尝试使用 beforeunload 并且当有人刷新页面时会产生问题。它在页面刷新时被调用,并且无法识别刷新和标签/屏幕关闭。
  • 那是因为您不能再在浏览器中覆盖或挂钩此类事件。您可以尝试按键或按下事件,但这仅适用于键盘快捷键。我找不到按刷新或关闭选项卡的解决方案。您可以尝试存储 url 并加载是否相同或不执行正确操作(如果我没记错 Router.url)。
  • 谢谢@Teodor 我仍然没有解决这个问题。会尝试你的建议。
  • 没有。它无法正常工作,因为每次刷新时都会触发事件。
  • 你可以查看这个。 stackoverflow.com/questions/34129319/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-26
  • 1970-01-01
  • 1970-01-01
  • 2010-10-08
  • 1970-01-01
  • 2014-01-16
相关资源
最近更新 更多