关键事件没有在Firefox的iframe内触发

Key events not fired inside iframe for Firefox

本文关键字:iframe Firefox 事件      更新时间:2023-09-26

我有我自己的小自制JSFiddle网站,我主要是为了好玩而建立的,到目前为止它工作得很好,但我只在Chrome上开发。我想提到这一点,因为我认为我的问题可能(希望)能够通过改变我的小沙箱来解决,但这是我的主要问题:

在我的沙盒中,我开发了一个小型的Snake实现,它依赖于按键事件来控制玩家。在Chrome中一切都运行良好,我对此非常满意,但在Firefox中,我无法控制播放器。你可以在这里看到我的设置:

http://willseph.com/sandbox/?id=ORWx7miv

玩家应该用方向键或方向键控制,但它们似乎在Firefox中不起作用。我在另一篇文章中看到,应该将tabindex="0"属性添加到应该接收焦点的元素中(虽然我不确定哪个元素会是,我试着把它放在父文档中持有渲染iframe的元素中,iframe元素本身,以及iframe内的容器div)。

有人能解释一下吗?我很想知道为什么会这样。

更新:

我刚刚在JSFiddle上上传了相同的代码,我遇到了同样的问题。Chrome支持键盘控制,Firefox不支持:

http://jsfiddle.net/Ud876/1/embedded/result/

您的问题,在我与firebug的测试中,似乎在这里:

$(window).keydown(function () {
    //                      ^ --- no event object passed to function
    game.onKeyDown(event, game);
});

看到固定小提琴在行动,这里