2015-06-28 49 views
3

MDN有the following谈谈fullscreenEnabled:什么是规范msFullscreenEnabled

fullscreenEnabled属性告诉你该文件当前是否是在将允许请求全屏模式的状态。

我认为这意味着:只要请求全屏可能,该属性就会成立。

微软有一个关于它here几乎相同的措辞:

返回true如果文档允许元素全屏模式显示。否则它返回false

然而,在MSDN detail page about the property,有以下的,矛盾的信息:

标志,指示元素是否是目前正处于全屏模式。

因为当一个元素是目前在全屏模式下,此属性只返回true,它不应该被用于特征检测。

这是怎么回事?

更新

我的测试表明,该msFullscreenEnabled财产上的IE 11确实产生假阴性。

回答

3

您必须了解每个浏览器都有自己的具体实现fullscreenEnabled

由于W3C全屏规范不是最终规范,因此大多数浏览器供应商为API提供前缀。在所有前缀中有一个请求全屏模式的函数是一个好主意。

然而,在整个过程中,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是:

报表是否不全屏模式下使用。全屏模式仅适用于任何文档中没有窗口插件的页面,并且如果 包含该文档的所有元素都设置了其allowfullscreen属性。

这是按照与当前全屏API规格其中mentions

fullscreenEnabled ,则返回true,如果文档具有显示 元件全屏的能力和全屏被支撑,或否则返回false。


我的猜测是MS其次从而改变在某些时候,结束了与当前工作的API不同规格断档W3C全屏API文档。 事实上,我只发现W3C已停止使用的文档参考Microsoft Fullscreen API documentation似乎支持这一点。

我相信Microsoft Fullscreen API documentation中提到的将在fullscreenenabled property description中更新。但是我还没有完全掌握Edge浏览器,所以我不能肯定地说它是规格错误还是实现。


你也可以看看HTML 5的全屏API here和浏览器支持的API here的背景/必要性。

+0

边缘自此前置了前缀,但MSDN上的详细信息页面和概述页面仍然互相矛盾。我没有试图去看看Edge究竟做了些什么。 –