首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML5退出视频全屏

问HTML5退出视频全屏
EN

Stack Overflow用户
提问于 2013-10-14 10:06:49
回答 4查看 35.4K关注 0票数 12

我有一个HTML5视频与自定义控件在正常屏幕。在全屏没有自定义控件。我只是在全屏显示默认控件。但是当退出全屏时,我需要禁用默认控件。我们如何知道视频是使用JavaScript还是jQuery退出了全屏模式?

EN

回答 4

Stack Overflow用户

发布于 2013-10-14 10:12:57

如果您在一个全屏文档中,则只能调用document.mozCancelFullScreen()。也就是说,如果您在一个包含在另一个文档(即全屏文档)中的文档中,mozCancelFullScreen()将不会在内部iframe中执行任何操作,因为只有外部文档才是实际的全屏文档。也就是说,在外部文档中调用mozCancelFullScreen将取消全屏,但在内部文档中调用它不会。

还要注意,mozCancelFullScreen()将全屏恢复为具有前一个全屏元素的全屏。因此,如果您多次请求全屏,取消全屏并不一定会完全退出全屏,它可能会回滚到以前的全屏状态。

示例:

1.你可以:

代码语言:javascript
复制
$(document).on('webkitExitFullScreen', function()      {       
  alert("Full Screen Closed"); 
});

2.您可以使用一个变量来进一步使用:

代码语言:javascript
复制
var exitedFullScreen;
$(document).on("webkitExitFullScreen", function() {
   exitedFullScreen = !!$(document).fullScreen();
}

3.将其应用于你的集装箱:

代码语言:javascript
复制
$('video')[0].webkitExitFullScreen();

4.仅使用JavaScript:

代码语言:javascript
复制
<script type="text/javascript">
  function ExitVideo() {
      document.getElementsByTagName('video')[0].webkitExitFullScreen();
  }
</script>

5.还有几个第三方插件可以让您访问您需要的事件:

编辑1

浏览器之间存在兼容性问题,以下是不同语句的示例:

代码语言:javascript
复制
document.webkitExitFullscreen();
document.mozCancelFullscreen();
document.exitFullscreen();

编辑2

默认情况下,在Chrome 15、Firefox 14和Opera 12中启用了全屏幕API。有关该API其余部分的更多信息,请参见规范。

更新2012-10-11:符合规格变化。在requestFullscreen()中降低"S“,并将document.webkitCancelFullScreen()更改为document.webkitExitFullscreen()。

编辑3

在Firefox中不使用jQuery进行调试,尝试以下操作:

代码语言:javascript
复制
var videoElement = document.getElementById("myvideo");

  function toggleFullScreen() {
    if (!document.mozFullScreen && !document.webkitFullScreen) {
      if (videoElement.mozRequestFullScreen) {
        videoElement.mozRequestFullScreen();
      } else {
        videoElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);
      }
    } else {
      if (document.mozCancelFullScreen) {
        document.mozCancelFullScreen();
      } else {
        document.webkitCancelFullScreen();
      }
    }
  }

  document.addEventListener("keydown", function(e) {
    if (e.keyCode == 13) {
      toggleFullScreen();
    }
  }, false);

编辑4

要在火狐中使用jQuery,请尝试不同的示例:

代码语言:javascript
复制
if (document.mozCancelFullScreen) { 
    alert('Full Screen Closed') 
}
票数 13
EN

Stack Overflow用户

发布于 2017-06-04 04:50:59

以下是更新后的代码(2017年6月4日),适用于所有浏览器:

代码语言:javascript
复制
if (document.exitFullscreen)
    document.exitFullscreen();
else if (document.webkitExitFullscreen)
    document.webkitExitFullscreen();
else if (document.mozCancelFullScreen)
    document.mozCancelFullScreen();
else if (document.msExitFullscreen)
    document.msExitFullscreen();
票数 8
EN

Stack Overflow用户

发布于 2014-07-05 22:08:42

我从上面的帖子上拿了这个,但加上去了。我设置了文档值,然后允许我退出全屏。

代码语言:javascript
复制
  var videoElement = document.getElementById("myvideo");

  function toggleFullScreen() {
    if (!document.mozFullScreen && !document.webkitFullScreen) {
      if (videoElement.mozRequestFullScreen) {
        videoElement.mozRequestFullScreen();
      } else {
        videoElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);
      }
      document.mozFullScreen = true;
      document.webkitFullScreen = true;
    } else {
      if (document.mozCancelFullScreen) {
        document.mozCancelFullScreen();
      } else {
        document.webkitCancelFullScreen();
      }
    }
  }

  document.addEventListener("keydown", function(e) {
    if (e.keyCode == 13) {
      toggleFullScreen();
    }
  }, false);

我只加了这两行..。

document.mozFullScreen =真; document.webkitFullScreen =真;

除了上面llia的代码外,它对我来说也是完美的。

编辑:这似乎比以前写的更好。

代码语言:javascript
复制
  fullScreenButton.addEventListener("click", function() {
   if (!document.fullscreenElement &&    // alternative standard method
   !document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement ) {  // current working methods
     if (video.requestFullscreen) {
      video.requestFullscreen();
     } else if (video.msRequestFullscreen) {
      video.msRequestFullscreen();
     } else if (video.mozRequestFullScreen) {
      video.mozRequestFullScreen();
     } else if (video.webkitRequestFullscreen) {
      video.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();
     }
    }
   });
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19357854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档