首页 > 解决方案 > Uncaught (in promise) TypeError: Document not active

问题描述

我有一个按钮,可让您以全屏模式打开窗口。并且有一个错误。如果单击按钮并打开窗口的全屏模式。再按ESC按钮退出全屏模式再按 按钮,就会出现这样的错误。

Uncaught (in promise) TypeError: Document not active

在 FullScreenService.closeFullscreen

有没有办法解决这个错误?

isOpenFullScreen: boolean;

fullscreen() {
  if (!this.isOpenFullScreen) {
    this._fullscreen.openFullscreen();
    this.isOpenFullScreen = true;
  } else {
    this._fullscreen.closeFullscreen();
    this.isOpenFullScreen = false;
  }
}

标签: angular

解决方案


问题是当您按下ESC按钮时,属性isOpenFullScreen不会变回false. 尝试使用document.fullscreenElement和更改您的fullscreen方法,如下所示。

// isOpenFullScreen: boolean; // not needed

fullscreen() {
  if (document.fullscreenElement === null) {
    this._fullscreen.openFullscreen();
  } else {
    this._fullscreen.closeFullscreen();
  }
}

也许最好在您的服务中添加一个方法来指示您当前是否处于全屏模式。


推荐阅读