如何检测窗口关闭按钮' x''角2

时间:2017-09-01 10:04:19

标签: angular typescript popupwindow

我的应用程序中有以下场景: 我目前有一个服务,在下面创建一个弹出窗口:

import { Injectable } from '@angular/core';
function _window() : any {

  return window;
}
@Injectable()
export class WindowRef {
  get nativeWindow(): any {
    return _window();
  }
}

我使用此服务根据下面的代码生成一个弹出窗口,它完美地运行:

gotoPopUp(scriptId, idleTime) {
    let url = '#/script-reader-details/'.concat(scriptId).concat('/').concat(this.agentId).concat('/').concat('25').concat('/').concat(idleTime);

    let width = 900;
    let height = 500;

    let left = (screen.width / 2) - ( width / 2 );
    let top = (screen.height / 2) - ( height / 2);

    this.winRef.nativeWindow.open(url, '_blank',
      'toolbar=no, location=no, status=no, menubar=no, scrollbars=no,resizable=no, width=' + width + ', height=' + height + ', top=' + top + ', left=' + left + '');
  }

我需要检测用户何时点击“X' X'并关闭该弹出窗口。 我尝试使用下面的监听器并按照链接中的帖子进行操作: How can we detect when user closes browser?

示例:

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

  @HostListener('window:beforeunload', [ '$event' ])
  beforeUnloadHander(event) {
    this.updateIsRunningScript(this.agentId, false);
  }

但单击浏览器的关闭按钮时不会调用它们。

listener和nativeWindow之间是否有任何限制?

0 个答案:

没有答案