HTML5 退出视频全屏
HTML5 exiting video fullscreen
我有一个在普通屏幕中带有自定义控件的HTML5视频。不要全屏使用自定义控件。我只是全屏显示默认控件。但是当退出全屏时,我需要禁用默认控件。我们如何知道视频是否已经退出了使用 JavaScript 或 jQuery 的全屏模式?
您只能调用 document.mozCancelFullScreen()
,如果您位于全屏文档内。 即,如果您位于另一个文档(全屏)中包含的文档,则 mozCancelFullScreen() 不会在内部 iframe 中执行任何操作,因为只有外部文档是全屏的。 即在外部文档中调用 mozCancelFullScreen 将取消全屏,但在内部文档中调用它不会。
另请注意,mozCancelFullScreen()
将全屏还原为将以前的全屏元素还原为全屏。因此,如果您多次请求全屏,取消全屏不一定会完全退出全屏,它可能会回滚到以前的全屏状态。
例子:
1. 你可以选择:
$(document).on('webkitExitFullScreen', function() {
alert("Full Screen Closed");
});
2. 您可以使用变量进一步使用:
var exitedFullScreen;
$(document).on("webkitExitFullScreen", function() {
exitedFullScreen = !!$(document).fullScreen();
}
3. 将其应用于容器:
$('video')[0].webkitExitFullScreen();
4. 仅使用 JavaScript:
<script type="text/javascript">
function ExitVideo() {
document.getElementsByTagName('video')[0].webkitExitFullScreen();
}
</script>
5. 还有几个第三方插件可让您访问所需的活动:
- http://johndyer.name/native-fullscreen-javascript-api-plus-jquery-plugin/
- https://github.com/ruidlopes/jquery-fullscreen
编辑 1
浏览器之间存在兼容性问题,以下是不同语句的示例:
document.webkitExitFullscreen();
document.mozCancelFullscreen();
document.exitFullscreen();
编辑 2
默认情况下,Fullscreen API 在 Chrome 15、Firefox 14 和 Opera 12 中处于启用状态。有关 API 其余部分的更多信息,请参阅规范。
2012 年 10 月 11 日更新:与规范更改保持一致。小写的"S" 在requestFullscreen()中并更改了document.webkitCancelFullScreen() to document.webkitExitFullscreen()。
编辑 3
尝试以下操作,不要使用 jQuery 在 Firefox 中进行调试:
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
要在 Firefox 中与 jQuery 一起使用,请尝试不同的示例:
if (document.mozCancelFullScreen) {
alert('Full Screen Closed')
}
这是目前(2017年6月4日)的更新代码,适用于所有浏览器:
if (document.exitFullscreen)
document.exitFullscreen();
else if (document.webkitExitFullscreen)
document.webkitExitFullscreen();
else if (document.mozCancelFullScreen)
document.mozCancelFullScreen();
else if (document.msExitFullscreen)
document.msExitFullscreen();
我从上面的帖子中获取了这个,但添加了它。我设置了文档值,然后允许我退出全屏。
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 = true;
document.webkitFullScreen = true;
除了上面的 Llia 代码之外,这对我来说非常有效。
编辑:这似乎比之前写的更好。
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();
}
}
});
$('video').bind('webkitfullscreenchange mozfullscreenchange fullscreenchange', function(e) {
var state = document.fullScreen || document.mozFullScreen || document.webkitIsFullScreen;
var event = state ? 'FullscreenOn' : 'FullscreenOff';
// Now do something interesting
alert('Event: ' + event);
});
- 视频HTML没有'无法在Internet Explorer 11上工作
- 播放当前视频时如何停止其他视频?JavaScript
- 使用Facebook live API创建实时视频对象时的隐私设置
- 弹出窗口出现,然后退出
- Brightcove获取/显示HTML中的当前视频标题和描述
- 退出全屏不起作用
- Twilio-显示所有连接参与者的远程参与者视频
- 基于两个条件退出While循环
- WebRTC视频聊天可以在FF中使用,但不能在Chrome中使用
- 是否可以使用iframe API在iOS浏览器上播放youtube视频
- 如何检查用户在html5视频播放器中观看了完整的视频
- Fullpage.js-视频+背景在同一部分
- html5视频中的Youtube类型注释
- 自定义HTML5视频控件-退出按钮不会启动全屏切换功能
- 使用jQuery检测用户是否退出全屏视频
- HTML5 退出视频全屏
- 如何在YouTube视频播放完成后自动退出浏览器
- jQuery检测视频退出全屏然后做一些事情
- 当退出模态窗口时停止播放iframe视频
- facebook如何处理停止视频帖子时,他们在/退出滚动视图