如何使用纯 JavaScript 检测全屏 api 支持?

Fel*_*Dev 6 javascript cross-browser

这是我指的 API: https: //developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API

至于到目前为止我所尝试过的:

Modernizr 有这个Modernizr.fullscreen东西,但我不想使用另一个库来完成看似简单的任务。

所以我正在挖掘 Modernizr 的源代码来尝试看看他们是如何做到这一点的,毕竟 Modernizr 确实使用 JS 来解决它,对吧?但到目前为止,我在源代码中发现的有关全屏 API 的就是这个文件(Modernizr/feature-detects/fullscreen-api.js)

/*!
{
  "name": "Fullscreen API",
  "property": "fullscreen",
  "caniuse": "fullscreen",
  "notes": [{
    "name": "MDN Docs",
    "href": "https://developer.mozilla.org/en/API/Fullscreen"
  }],
  "polyfills": ["screenfulljs"],
  "builderAliases": ["fullscreen_api"]
}
!*/
/* DOC
Detects support for the ability to make the current website take over the user's entire screen
*/
define(['Modernizr', 'prefixed'], function(Modernizr, prefixed) {
  // github.com/Modernizr/Modernizr/issues/739
  Modernizr.addTest('fullscreen', !!(prefixed('exitFullscreen', document, false) || prefixed('cancelFullScreen', document, false)));
});
Run Code Online (Sandbox Code Playgroud)

...我不太明白该代码。然而。

小智 5

以下代码片段似乎是最好的解决方案:

const fullScreenAvailable = document.fullscreenEnabled || 
                            document.mozFullscreenEnabled ||
                            document.webkitFullscreenEnabled ||
                            document.msFullscreenEnabled
Run Code Online (Sandbox Code Playgroud)