真的很难让我的视频播放器能够在internet explorer中处理全屏。
我正在使用以下代码从这里
(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/如果我在我的ie版本中使用的简单演示运行代码
http://johndyer.name/lab/fullscreenapi/
对不起:您的浏览器不支持全屏
这很好,但我不明白的是当我在上运行视频演示时http://mediaelementjs.com/在internet explorer中,它将进入全屏状态。
问题是他们到底是怎么做到的???它也适用于Youtube等
我真的很想让我的视频播放器在互联网浏览器中全屏工作。如果上面的代码说它不支持,有人能给我指一个正确的方向吗???
感谢
查看John Dyer实验室的代码,他正在测试带有或不带有供应商前缀的cancelFullScreen方法,以确定本机全屏支持。对于一些浏览器来说,这已经过时了(它从来没有对IE有效)-W3C使用exitFullscreen,因此大多数供应商都使用前缀(可能John Dyer在为其主要的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的具体信息,请参阅此处。本地HTML5媒体元素全屏支持仅可从IE 11获得(您可以测试msExitFullscreen方法以检查支持)。对于IE 9和10(以及其他没有本地全屏支持的浏览器),您可以将播放器的大小扩展到视口的全宽和全高,作为后备。