尝试使用javascript全屏api时,在Safari 5.1.2中特别遇到以下问题。
通过将以下行复制并粘贴到已加载页面上的浏览器中,您可以看到效果。
适用于Chrome 15和Safari 5.1.2:
javascript:document.querySelector('body').webkitRequestFullScreen();
这适用于Chrome 15,但在Safari 5.1.2中无声地失败:
javascript:document.querySelector('body').webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);
ALLOW_KEYBOARD_INPUT似乎应该可以在Safari中使用,根据此处的文档:http://developer.apple.com/library/safari/#documentation/WebKit/Reference/ElementClassRef/Element/Element.html
为什么这不起作用?
答案 0 :(得分: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
}
使用此实时嗅探,因此您的代码将支持Safari中未来的修复错误。
答案 1 :(得分:3)
someElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)
适用于Chrome。
someElement.webkitRequestFullScreen()
适用于safari 5.1.7
所有测试基于Windows 7。
答案 2 :(得分:1)
我刚遇到同样的问题,这绝对是一个错误。
这可能是the Undetectables的情况。猜猜我们将不得不使用好的浏览器嗅探。
...(/Safari/.test(navigator.userAgent) ? undefined : Element.ALLOW_KEYBOARD_INPUT)
[edit] ...在这种情况下,键盘输入是不可能的。所以我想最好暂时在Safari中删除全屏模式[/ edit]
请记住,目前全屏API尚处于初期阶段,不应在生产中使用