【问题标题】:rxjs visibilitychange event not firing in Angular 4rxjs visibilitychange 事件未在 Angular 4 中触发
【发布时间】:2018-07-17 20:22:02
【问题描述】:

我需要知道用户何时切换回包含我的页面的选项卡。我尝试了 visibllity api,但是在切换标签时,我的订阅没有被触发。我订阅了许多事件,除了切换标签时,它们都会触发。

代码如下:

private subscribeToActionEvents() {

this._zone.runOutsideAngular(() => {
  const actionEventNames = ['mousemove', 'scroll', 'keyup',
        'hidden', 'webkitHidden', 'visibilitychange', 'webkitvisibilitychange', 'msvisibilitychange'];

  const events = actionEventNames.map((eventName) => {
    let el = this._element.nativeElement;
    return Observable.fromEvent(jQuery(el).closest('body'), eventName);
  });

  const allActionEvents$ = Observable.merge(...events);

  this._subscriptions$.push(allActionEvents$.subscribe((event) => {
      this._registerUserActivity();
    })
  );
});

}

我什至尝试附加到“html”而不是“body”标签,没有区别。 我错过了什么吗? 谢谢

【问题讨论】:

    标签: angular rxjs


    【解决方案1】:

    您需要将侦听器添加到文档中才能使可见性更改生效。 简单示例,检查控制台输出:https://stackblitz.com/edit/angular-wkjqrw

    【讨论】:

      猜你喜欢
      • 2018-04-13
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 2016-12-06
      • 2018-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多