全屏替换ALLOW_KEYBOARD_INPUT javascript

时间:2013-04-22 15:14:30

标签: javascript fullscreen

我一直在互联网上搜索我的全屏javascript在Safari中不起作用,但在webkit浏览器Chrome中有效的原因。似乎safari不支持element.ALLOW_KEYBOARD_INPUT的{​​{1}}加载项。

webkitRequestFullScreen

有没有人知道如何让safari接受全屏但仍然能够处理键盘输入?

2 个答案:

答案 0 :(得分:19)

根据Apple的documentation,这应该适用于Safari 5.1及更高版本,但显然它没有。我向Apple提交了一份错误报告(他们没有公开),答复如下:

  

Engineering已根据以下内容确定此问题的行为符合预期:   出于安全原因,我们故意全屏禁用键盘访问。

我已回复要求他们至少更新文档并以某种方式检测缺少功能支持。如果我得到回复,我会在这里更新。

不幸的是,由于element.ALLOW_KEYBOARD_INPUT在Safari中定义,并且使用该标志的函数调用不会引发错误,因此甚至没有一种方法可以进行特征检测。唯一剩下的选项是解析用户代理字符串(尝试this library)。

显然,Apple尚未记录哪个版本支持此功能,但根据this,它从v5.1.2开始停止工作。这将使极少数人使用5.1未修补,如果它甚至一直工作。所以它可能甚至不值得检测版本。

作为后备,我会扩展所需的DOM元素以填充浏览器窗口,方法是将CSS高度和宽度设置为100%,并将其定位为“fixed”或“absolute”。

更新:文档似乎已更正,不再提及ALLOW_KEYBOARD_INPUT标记。

答案 1 :(得分:1)

已在Safari 10.1中修复此问题!

在“Safari浏览器行为”部分下。