全屏功能无法正常运行

时间:2019-05-03 06:15:03

标签: javascript fullscreen

我正在尝试在我的网站中实现全屏功能,但是它不能正常工作,发生的情况是,当我通过菜单切换到其他页面时,它失去了全屏功能。例如,我有一个用于切换全屏功能的按钮,因此,当我单击时,它将进入全屏状态,但是当我单击“转到其他页面”链接时,它将转到另一个页面,但不在全屏状态。但是,如果我使用F11之类的键盘按钮,则它可以正常工作。

所以我正在使用的是用户按钮,这样他就可以切换全屏显示

<input type="button" value="click to toggle fullscreen" onclick="toggleFullScreen()">

我的功能如下:

  function toggleFullScreen() {
  if ((document.fullScreenElement && document.fullScreenElement !== null) ||    
   (!document.mozFullScreen && !document.webkitIsFullScreen)) {
    if (document.documentElement.requestFullScreen) {  
      document.documentElement.requestFullScreen();  
    } else if (document.documentElement.mozRequestFullScreen) {  
      document.documentElement.mozRequestFullScreen();  
    } else if (document.documentElement.webkitRequestFullScreen) {  
      document.documentElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);  
    }  
  } else {  
    if (document.cancelFullScreen) {  
      document.cancelFullScreen();  
    } else if (document.mozCancelFullScreen) {  
      document.mozCancelFullScreen();  
    } else if (document.webkitCancelFullScreen) {  
      document.webkitCancelFullScreen();  
    }  
  }  
}

但这不适用于所有页面。用户单击“ F11”按钮后,有什么方法可以激活该按钮,因为它可以正常工作,并且在切换时它将退出全屏显示。

1 个答案:

答案 0 :(得分:1)

Fullscreen web API的请求是在活动文档中的元素上进行的。
当您导航到另一页面时,发出此请求的文档已失效,因此禁用全屏模式是正常的。

F11 全屏模式不是全屏Web API,而是浏览器UI的一部分,就像开发工具等一样。因此,该模式可以持久跨文档。

唯一的解决方法是从原始文档导航到另一页,例如使用