我一直在互联网上搜索我的全屏javascript在Safari中不起作用,但在webkit浏览器Chrome中有效的原因。似乎safari不支持element.ALLOW_KEYBOARD_INPUT
的{{1}}加载项。
webkitRequestFullScreen
有没有人知道如何让safari接受全屏但仍然能够处理键盘输入?
答案 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浏览器行为”部分下。