iframe全屏互联网资源管理器

时间:2014-04-16 19:39:25

标签: internet-explorer video fullscreen mediaelement.js jplayer

真的很难让我的视频播放器能够在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工作可以任何人指出我正确的方向如果上面的代码说它不支持它,人们怎么解决这个?

由于

1 个答案:

答案 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(以及其他没有本机全屏支持的浏览器),您可以将播放器的大小扩展到视口的整个宽度和高度作为后备。