msFullscreenEnabled 的规范是什么
What’s the specification for msFullscreenEnabled
MDN the following 关于全屏启用的说法:
The fullscreenEnabled
attribute tells you whether or not the document is currently in a state that would allow fullscreen mode to be requested.
我的意思是:只要可以请求全屏,属性 就会成立。
Microsoft 对此的措辞几乎相同 here:
Returns true
if a document lets elements be displayed in full-screen mode. Otherwise it returns false
.
然而,在 MSDN detail page about the property 上,有以下自相矛盾的信息:
Flag that indicates whether or not an element is currently in full-screen mode.
和
Because this property only returns true when an element is currently in full-screen mode, it shouldn't be used for feature detection.
这是怎么回事?
更新
我的测试表明 msFullscreenEnabled
属性 在 IE 11 上确实会产生漏报。
您必须了解每个浏览器都有其自己的特定实现 fullscreenEnabled
。
Because the W3C Fullscreen specification isn't final, most browser
vendors prefix the API. It's a good idea to have a single function that requests full-screen mode across all prefixes.
然而,W3 全屏 API 文档(2014 年 11 月 18 日)在某个地方停止,以支持 WHATWG 在 Fullscreen API specification 上的工作 - 正在进行。
Internet Explorer 在 11 之前没有实现它。在 IE11 中它处于实验阶段(命名为 msFullscreenEnabled
)。 Microsoft Edge 及更高版本选择使用名称 fullscreenEnabled
。 msFullscreenEnabled
的假阴性 处于实验阶段,应该不会出乎意料。
Mozilla Firefox 的 fullscreenEnabled 也是实验性的。 Firefox 10 之后默认启用。它的语法实际上是mozFullScreenEnabled
。
webkit
.
的原理相同
mozFullScreenEnabled
的 definition 是:
Reports whether or not full-screen mode is available. Full screen mode is available only for a page that has no windowed
plug-ins in any of its documents, and if all elements which
contain the document have their allowfullscreen attribute set.
符合当前的全屏 API 规范 mentions:
fullscreenEnabled
Returns true if document has the ability to display
elements fullscreen and fullscreen is supported, or false otherwise.
我的猜测是 MS 遵循了已停用的 W3C 全屏 api 文档,该文档在某些时候发生了变化,并以与当前工作 api 不同的规范结束。
事实上,我只在 Microsoft Fullscreen API documentation 上找到了 W3C 停产文档参考,这似乎支持这一点。
我相信 Microsoft Fullscreen API documentation 中提到的内容会在 全屏启用 属性 描述 中更新。但我还没有完全接触过 Edge 浏览器,所以我不能确定是规范错误还是实现错误。
你也可以看看 HTML 5 全屏的 background/necessity API here and browser support of the API here.
MDN the following 关于全屏启用的说法:
The
fullscreenEnabled
attribute tells you whether or not the document is currently in a state that would allow fullscreen mode to be requested.
我的意思是:只要可以请求全屏,属性 就会成立。
Microsoft 对此的措辞几乎相同 here:
Returns
true
if a document lets elements be displayed in full-screen mode. Otherwise it returnsfalse
.
然而,在 MSDN detail page about the property 上,有以下自相矛盾的信息:
Flag that indicates whether or not an element is currently in full-screen mode.
和
Because this property only returns true when an element is currently in full-screen mode, it shouldn't be used for feature detection.
这是怎么回事?
更新
我的测试表明 msFullscreenEnabled
属性 在 IE 11 上确实会产生漏报。
您必须了解每个浏览器都有其自己的特定实现 fullscreenEnabled
。
Because the W3C Fullscreen specification isn't final, most browser vendors prefix the API. It's a good idea to have a single function that requests full-screen mode across all prefixes.
然而,W3 全屏 API 文档(2014 年 11 月 18 日)在某个地方停止,以支持 WHATWG 在 Fullscreen API specification 上的工作 - 正在进行。
Internet Explorer 在 11 之前没有实现它。在 IE11 中它处于实验阶段(命名为
msFullscreenEnabled
)。 Microsoft Edge 及更高版本选择使用名称 fullscreenEnabled
。 msFullscreenEnabled
的假阴性 处于实验阶段,应该不会出乎意料。
Mozilla Firefox 的 fullscreenEnabled 也是实验性的。 Firefox 10 之后默认启用。它的语法实际上是mozFullScreenEnabled
。
webkit
.
mozFullScreenEnabled
的 definition 是:
Reports whether or not full-screen mode is available. Full screen mode is available only for a page that has no windowed plug-ins in any of its documents, and if all elements which contain the document have their allowfullscreen attribute set.
符合当前的全屏 API 规范 mentions:
fullscreenEnabled
Returns true if document has the ability to display elements fullscreen and fullscreen is supported, or false otherwise.
我的猜测是 MS 遵循了已停用的 W3C 全屏 api 文档,该文档在某些时候发生了变化,并以与当前工作 api 不同的规范结束。 事实上,我只在 Microsoft Fullscreen API documentation 上找到了 W3C 停产文档参考,这似乎支持这一点。
我相信 Microsoft Fullscreen API documentation 中提到的内容会在 全屏启用 属性 描述 中更新。但我还没有完全接触过 Edge 浏览器,所以我不能确定是规范错误还是实现错误。
你也可以看看 HTML 5 全屏的 background/necessity API here and browser support of the API here.