可以't从Youtube IFrame更改焦点
Can't Change Focus from Youtube IFrame
我有一个Youtube iFrame,我使用键盘快捷键控制播放。但是,当我快进/快退时,焦点会变为iFrame,它会捕捉后续的按键。因此,我使用一个简单的函数来轮询焦点何时更改为iFrame,然后将焦点切换回文档主体。这是实时代码:
CODEPEN
然而,它不起作用!即使调用document.body.focus()
,焦点也不会从iFrame更改。知道怎么解决这个问题吗?
注意:我使用的浏览器是Surface Pro 3(Win 8.1)上的Chrome 41.0.2272.118
Seem类似的focus()
仅适用于按钮(在document.body
和常规<p>
元素上测试,两者都不起任何作用)。
修复了CODEPEN(旧的,请参阅下面的更新!)
注意,我在document.body.focus()
之前添加了document.getElementById("btn").focus()
,但焦点切换到btn
而不是document.body
。我使用的浏览器是Surface Pro 3(Win 8.1)上的Chrome 41.0.2272.118
更新
事实证明,如果使用display:none
或visibility:hidden
隐藏按钮,则focus()
方法将不再有效!这让我怀疑问题实际上在于一个元素是否可聚焦。显然,-1
的tabindex
使元素可聚焦,所以我在调用document.body.focus()
之前通过设置document.body.tabIndex = -1;
来测试这一点。瞧,它起作用了!
更新的CODEPEN
相关文章:
- 可以't从Youtube IFrame更改焦点
- 将焦点设置为嵌套iframe中的文本框
- iframe 中输入上的模糊/焦点事件(委派)
- 当 iFrame 处于焦点时未触发键控事件
- 如何在 Firefox 中以编程方式将焦点应用于 iframe 中的父框架(解决方法为 window.focus())
- Mootools 在 iframe 中拖动/失去焦点
- 如何将iframe与模糊和焦点一起使用
- Chrome不会为内容可编辑iframe中的文档触发焦点和模糊事件
- 防止iframe使用jquery保持焦点
- 将焦点设置为iframe内的jQuery Terminal
- 在有许多iframe的文档中查找焦点元素
- 防止子iFrame获得焦点
- 即使打开另一个浏览器,Iframe也会窃取焦点
- 在Chrome中设置焦点在iframe上
- 表单在iframe中无法在Angular和IE11中重新获得焦点
- 如何在Javascript中以编程方式从iframe获得父窗口的焦点
- 当iFrame的src有id时,防止iFrame获得焦点
- 从iframe移除焦点
- 在iframe内设置timeout,当焦点丢失时出现问题
- iOS - 删除带有焦点输入元素的 iFrame 可使光标可见并打开键盘