【问题标题】:Iframe fullscreen internet exploreriframe 全屏浏览器
【发布时间】:2014-04-16 19:39:25
【问题描述】:

真的很难让我的视频播放器能够在 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/,如果我在我的版本中运行代码,这里有简单的演示

http://johndyer.name/lab/fullscreenapi/

我收到此回复抱歉:您的浏览器不支持全屏

这很好,但我不明白的是,当我在 Internet Explorer 中的 http://mediaelementjs.com/ 上运行视频演示时,它会进入全屏状态。

问题是他们到底是怎么做到的???它也适用于 Youtube 等。

我真的很想让我的视频播放器在 Internet Explorer 中全屏工作 如果上面的代码说它不支持它,任何人都可以指出正确的方向,人们如何解决这个问题???

谢谢

【问题讨论】:

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


    【解决方案1】:

    查看来自 John Dyer lab 的代码,他正在测试带有或不带有供应商前缀的 cancelFullScreen 方法以确定本机全屏支持。这对于某些浏览器来说已经过时了(它对 IE 从来都无效) - W3C 使用了 exitFullscreen 和大多数供应商前缀(可能 John Dyer 没有时间更新这个页面,而他为它的主要 mediaelementjs 项目做了更新) - 看看 mediaelementjs 的源代码)。

    您需要查看此article 以获得完整的最新解决方案。

    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的具体情况见here。本机 HTML5 媒体元素全屏支持仅在 IE 11 中可用(您可以测试 msExitFullscreen 方法以检查支持)。对于 IE 9 和 10(以及其他不支持原生全屏的浏览器),您可以将播放器的大小扩展到视口的全宽和全高作为后备。

    【讨论】:

      猜你喜欢
      • 2016-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多