Firefox中iframe内未触发的关键事件

时间:2013-03-06 02:31:51

标签: javascript jquery firefox iframe javascript-events

我有自己的小型自制JSFiddle网站,我主要是为了好玩而建立的,到目前为止,它工作得非常好,但我只在Chrome中开发。我想提一下,因为我认为我的问题可能(希望)可以通过更改我的小沙箱来修复,但这是我的主要问题:

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

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

播放器应该用箭头键或WASD控制,但它们似乎不适用于Firefox。我在another post中看到tabindex="0"属性应该添加到应该获得焦点的元素中(尽管我不确定哪个元素会是,我尝试将它放在持有渲染iframe的元素中在父文档中,iframe元素本身和iframe内的容器div。

有人可以对此有所了解吗?我想知道为什么会这样。

更新

我刚刚在JSFiddle上传了相同的代码,我遇到了同样的问题。键盘控件适用于Chrome但不适用于Firefox:

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

1 个答案:

答案 0 :(得分:2)

在我使用firebug进行的测试中,您的问题似乎在这里:

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

请参阅固定小提琴,here