Iframe fullscreen internet explorer



真的很难让我的视频播放器能够在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(以及其他没有本地全屏支持的浏览器),您可以将播放器的大小扩展到视口的全宽和全高,作为后备。

最新更新