【问题标题】:how to detect a browser supports requestFullscreen如何检测浏览器是否支持 requestFullscreen
【发布时间】:2013-06-26 06:44:25
【问题描述】:

如何检测浏览器是否支持requestFullscreen

我在下面有这些代码来制作 chrome、safari、firefox 和opera(不完全工作)来制作全屏文档,但我想检测浏览器是否支持requestFullscreen。我该怎么办?

 $('.button-fullscreen').click(function(){ 

    var docElm = document.documentElement;

    // W3C Proposal
    if (docElm.requestFullscreen) {
        docElm.requestFullscreen();
    }

    // mozilla proposal
    else if (docElm.mozRequestFullScreen) {
        docElm.mozRequestFullScreen();          
    }

    // Webkit (works in Safari and Chrome Canary)
    else if (docElm.webkitRequestFullScreen) {
        docElm.webkitRequestFullScreen(); 
    }

    return false;
});

$('.button-sound').click(function(){               

    // W3C Proposal
    if (document.exitFullscreen) {
        document.exitFullscreen();
    }

    // mozilla proposal
    else if (document.mozCancelFullScreen) {
        document.mozCancelFullScreen();
    }

    // Webkit (works in Safari and Chrome Canary)
    else if (document.webkitCancelFullScreen) {
        document.webkitCancelFullScreen();
    }

    return false;
});

【问题讨论】:

    标签: jquery fullscreen


    【解决方案1】:

    当您输入if (docElm.requestFullscreen) 时,您正在检测浏览器是否支持该方法,因为如果在docElm 对象上定义了requestFullscreen,它将返回true。

    【讨论】:

      【解决方案2】:

      使用modernizr 框架避免测试n 个供应商前缀...

      Modernizr.prefixed('requestFullscreen', document.documentElement)
      

      【讨论】:

      【解决方案3】:

      从screenful中提取想法似乎可行

        const canFullscreen = (function() {
          for (const key of [
              'exitFullscreen',
              'webkitExitFullscreen',
              'webkitCancelFullScreen',
              'mozCancelFullScreen',
              'msExitFullscreen',
            ]) {
            if (key in document) {
              return true;
            }
          }
          return false;
        }());
      
      
        if (canFullscreen) {
          // supported
        } else {
          // not-supported
        }
      

      注意:出于我的目的,我不需要库来进行全屏显示。我只需要代码来检测是否有可能,因为我正在使用其他一些可以全屏显示的库,但我需要知道是否显示全屏选项,然后调用该库。换句话说,如果可以全屏显示按钮,否则不要。

      【讨论】:

      • 上面提到的@gman 通过调整对我有用。只需检查“exitFullscreen”,因为即使不支持其他人也可以包含在文档中。我已经在 Chrome、Firefox、Edge 和 Safari 上对其进行了测试。仅在 Safari 上进行上述调整后, canFullScreen 设置为 false - 不支持它。所有其他将其设置为 true 的浏览器也支持全屏。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-05
      • 2011-12-12
      • 2011-09-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多