切换全屏退出

cwi*_*ggo 6 html javascript fullscreen toggle

我有以下由我的HTML中的按钮触发的javascript:

function toggleFullScreen(){

    if(v.requestFullScreen){
        v.requestFullScreen();
    }
    else if(v.webkitRequestFullScreen){
        v.webkitRequestFullScreen();
    }
    else if(v.mozRequestFullScreen){
        v.mozRequestFullScreen();
    }
}
Run Code Online (Sandbox Code Playgroud)

如何扩展此JS代码以包含退出全屏的功能?这方面的最佳做法是什么?

gpg*_*kko 15

在MDN上实际上有一个功能齐全的例子:https: //developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Using_full_screen_mode#Toggling_fullscreen_mode

引用:

切换全屏模式

当用户点击Enter键时,将调用此代码,如上所示.

function toggleFullScreen() {
  if (!document.fullscreenElement &&    // alternative standard method
      !document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement ) {  // current working methods
    if (document.documentElement.requestFullscreen) {
      document.documentElement.requestFullscreen();
    } else if (document.documentElement.msRequestFullscreen) {
      document.documentElement.msRequestFullscreen();
    } else if (document.documentElement.mozRequestFullScreen) {
      document.documentElement.mozRequestFullScreen();
    } else if (document.documentElement.webkitRequestFullscreen) {
      document.documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
    }
  } else {
    if (document.exitFullscreen) {
      document.exitFullscreen();
    } else if (document.msExitFullscreen) {
      document.msExitFullscreen();
    } else if (document.mozCancelFullScreen) {
      document.mozCancelFullScreen();
    } else if (document.webkitExitFullscreen) {
      document.webkitExitFullscreen();
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

首先查看文档中fullscreenElement属性的值(检查前缀为moz,ms和webkit).如果它为null,则文档当前处于窗口模式,因此我们需要切换到全屏模式.切换到全屏模式是通过调用element.mozRequestFullScreen()msRequestFullscreen()或webkitRequestFullscreen()来完成的,具体取决于哪个可用.

如果全屏模式已经激活(fullscreenElement为非null),我们再次调用document.mozCancelFullScreen(),msExitFullscreen或webkitExitFullscreen(),具体取决于正在使用的浏览器.