我正在努力寻找一种跨浏览器的方式来触发视频上的双击全屏事件。我使用 videoJS 作为播放器框架和全屏 API。我需要一个兼容 IE11、Google Chrome 和 Safari 10 的解决方案。
这是我定义视频标签的 HTML 页面部分:
<div id="video-js-player-container" onclick="toggleFullScreen()">
<video id="video-js" class="video-js vjs-default-skin videoSlideBox"
autoplay="autoplay" preload="auto"
width="100%" height="100%"
data-setup='{}' controls>
<source src="path/to/my/file" type='video/mp4'>
</video>
</div>
Anf 这是全屏显示的脚本:
<script>
function toggleFullScreen() {
var i = document.getElementById("video-js-player-container");
if (i.requestFullscreen) {
i.requestFullscreen();
} //fullscreen for safari/chrome/opera
else if (i.webkitRequestFullscreen) {
i.webkitRequestFullscreen();
} //fullscreen for Firefox
else if (i.mozRequestFullScreen) {
i.mozRequestFullScreen();
} //fillscreen for IE11
else if (i.msRequestFullscreen) {
i.msRequestFullscreen();
}
}
</script>
这个解决方案有效,只要我点击视频的边缘,视频就会进入全屏状态,如下图所示:
例如,如果我单击视频中间,则没有任何反应,而如果单击红色箭头所指的边缘,则视频将进入全屏状态。
为了克服这个问题,我尝试将我的视频放在按钮标签中:
<button id="fullScreenButton" type="button" onclick="toggleFullScreen()">
<div id="video-js-player-container">
<video id="video-js" class="video-js vjs-default-skin videoSlideBox"
autoplay="autoplay" preload="auto"
width="100%" height="100%"
data-setup='{}' controls>
<source src="path/to/my/file" type='video/mp4'>
</video>
</div>
</button>
这个解决方案及其问题是有效的。我可以点击我的视频并进入全屏模式,但视频区域内出现了一个奇怪的窗口:
我该如何解决这些问题?