可以't从Youtube IFrame更改焦点

Can't Change Focus from Youtube IFrame

本文关键字:IFrame 焦点 Youtube 可以      更新时间:2023-09-26

我有一个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:nonevisibility:hidden隐藏按钮,则focus()方法将不再有效!这让我怀疑问题实际上在于一个元素是否可聚焦。显然,-1tabindex使元素可聚焦,所以我在调用document.body.focus()之前通过设置document.body.tabIndex = -1;来测试这一点。瞧,它起作用了!

更新的CODEPEN