无法从Youtube IFrame更改焦点

时间:2015-04-06 18:30:56

标签: javascript iframe youtube

我有一个Youtube iFrame,我使用键盘快捷键控制播放。但是,当我快进/快退时,焦点会变为iFrame,后者会捕获后续按键。因此,我使用一个简单的函数来轮询焦点更改为iFrame,然后将焦点切换回文档正文。这是实时代码:

CODEPEN

然而,它不起作用!即使正在调用document.body.focus(),焦点也永远不会从iFrame更改。知道如何解决这个问题吗?

注意:我正在使用的浏览器是Surface Pro 3(Win 8.1)上的 Chrome 41.0.2272.118

1 个答案:

答案 0 :(得分:2)

似乎focus()仅适用于按钮(在document.body和常规<p>元素上测试过,两者都无效)。

Fixed CODEPEN (old, see update below!)

请注意,我在document.getElementById("btn").focus()之前添加了document.body.focus(),但焦点切换为btn而非document.body。我使用的浏览器是Surface Pro 3(Win 8.1)上的Chrome 41.0.2272.118

更新

原来,如果使用display:nonevisibility:hidden隐藏按钮,则focus()方法不再有效!这让我怀疑问题实际上是一个元素是否可以集中。显然tabindex -1使得元素可以集中,所以我通过在调用document.body.tabIndex = -1;之前设置document.body.focus()来测试它。而且,看,它工作!

updated CODEPEN