在Safari 5.1.2中传递Element.ALLOW_KEYBOARD_INPUT时,webkitRequestFullScreen失败

Geu*_*uis 6 javascript safari fullscreen

尝试使用javascript全屏api时,在Safari 5.1.2中特别遇到以下问题.

通过将以下行复制并粘贴到已加载页面上的浏览器中,您可以看到效果.

这适用于Chrome 15和Safari 5.1.2:

 javascript:document.querySelector('body').webkitRequestFullScreen();
Run Code Online (Sandbox Code Playgroud)

这适用于Chrome 15但在Safari 5.1.2中无声地失败:

 javascript:document.querySelector('body').webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);
Run Code Online (Sandbox Code Playgroud)

根据这里的文档,ALLOW_KEYBOARD_INPUT似乎应该可以在Safari中使用:http://developer.apple.com/library/safari/#documentation/WebKit/Reference/ElementClassRef/Element/Element.html

任何想法为什么这不起作用?

小智 9

这是已知的Safari bug.它可以在全屏切换时嗅探:

someElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);
if (!document.webkitCurrentFullScreenElement) {
    // Element.ALLOW_KEYBOARD_INPUT does not work, document is not in full screen mode
}
Run Code Online (Sandbox Code Playgroud)

使用这个实时嗅探,因此您的代码将支持Safari中的未来修复错误.

  • 我必须将Chrome中的'webkitCurrentFullScreenElement`属性读取超时至少80毫秒,然后它才为空(似乎与Chrome用于全屏的动画有关).我不能直接检查吗? (2认同)