真的很难让我的视频播放器能够在Internet Explorer中处理Fullscreen。
我在这里使用以下代码
(function() {
var
fullScreenApi = {
supportsFullScreen: false,
isFullScreen: function() { return false; },
requestFullScreen: function() {},
cancelFullScreen: function() {},
fullScreenEventName: '',
prefix: ''
},
browserPrefixes = 'webkit moz o ms khtml'.split(' ');
// check for native support
if (typeof document.cancelFullScreen != 'undefined') {
fullScreenApi.supportsFullScreen = true;
} else {
// check for fullscreen support by vendor prefix
for (var i = 0, il = browserPrefixes.length; i < il; i++ ) {
fullScreenApi.prefix = browserPrefixes[i];
if (typeof document[fullScreenApi.prefix + 'CancelFullScreen' ] != 'undefined' ) {
fullScreenApi.supportsFullScreen = true;
break;
}
}
}
// update methods to do something useful
if (fullScreenApi.supportsFullScreen) {
fullScreenApi.fullScreenEventName = fullScreenApi.prefix + 'fullscreenchange';
fullScreenApi.isFullScreen = function() {
switch (this.prefix) {
case '':
return document.fullScreen;
case 'webkit':
return document.webkitIsFullScreen;
default:
return document[this.prefix + 'FullScreen'];
}
}
fullScreenApi.requestFullScreen = function(el) {
return (this.prefix === '') ? el.requestFullScreen() : el[this.prefix + 'RequestFullScreen']();
}
fullScreenApi.cancelFullScreen = function(el) {
return (this.prefix === '') ? document.cancelFullScreen() : document[this.prefix + 'CancelFullScreen']();
}
}
// jQuery plugin
if (typeof jQuery != 'undefined') {
jQuery.fn.requestFullScreen = function() {
return this.each(function() {
if (fullScreenApi.supportsFullScreen) {
fullScreenApi.requestFullScreen(this);
}
});
};
}
// export api
window.fullScreenApi = fullScreenApi;
})();
取自http://johndyer.name/native-fullscreen-javascript-api-plus-jquery-plugin/,如果我在我的版本中使用简单的演示运行代码
http://johndyer.name/lab/fullscreenapi/
我得到此回复SORRY:您的浏览器不支持FullScreen
哪个好,但我不明白的是当我在Internet Explorer的http://mediaelementjs.com/上运行视频演示时,它会全屏显示。
问题是他们到底是怎么做的???它也适用于Youtube等。
我真的想让我的视频播放器工作全屏在Internet Explorer工作可以任何人指出我正确的方向如果上面的代码说它不支持它,人们怎么解决这个?
由于
答案 0 :(得分:1)
查看来自John Dyer lab的代码,他正在测试带有或不带供应商前缀的cancelFullScreen方法,以确定本机全屏支持。对于某些浏览器来说这已经过时了(它从来没有对IE有效) - W3C使用exitFullscreen,所以大多数供应商前缀(可能John Dyer没有时间更新此页面,而他为其主要{{3}项目 - 看看mediaelementjs的源代码。
您需要查看此mediaelementjs以获取完整的最新解决方案。
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();
}
}
}
请参阅上文,了解检查支持的方法。
有关IE的具体信息,请参阅article。原生HTML5媒体元素全屏支持仅适用于IE 11(您可以测试msExitFullscreen方法来检查支持)。对于IE 9和10(以及其他没有本机全屏支持的浏览器),您可以将播放器的大小扩展到视口的整个宽度和高度作为后备。