我正在制作一个带键盘导航的简单浏览器游戏。
问题是我在网站上有iframe,当用户点击其中一个iframe时,检测到keydowns的正文事件根本不起作用,除非用户再次点击iframe外。
有没有办法检测keydowns,无论用户是否点击了外部iframe?
感谢
答案 0 :(得分:2)
没有。您无法在外部 iframe
上检测到按键
通常,没有脚本事件可以在外部 iframe
中运行,这是设计的。
考虑一下恶意用户所拥有的所有可能性,我会说,安全漏洞。
答案 1 :(得分:0)
如果它是同一个域,您可以在iframe和窗口上注册事件。
如果它位于两个地方都无法访问的不同域中,请编号
如果您有权访问这两个域,那么您可以使用一些散列标记通信,或者使用其他路由进行跨域通信。基本上,您将在iframe和窗口中注册事件,并在事件发生时简单地调用Windows事件。
虽然可能是邪恶的,但你可以做以下的变种。
setTimeout(function(){
document.body.focus()
}, 100 );
此外,我不确定它是如何跨浏览器的。