2013-03-06 164 views
0

我有我自己制作的小型自制JSFiddle网站,主要是为了好玩,迄今为止它工作得很好,但我专门在Chrome中开发。我想提到这一点,因为我认为我的问题可能(希望)能够通过更改我的小沙箱来解决,但这是我的主要问题:未在Firefox内部的iframe中触发的重要事件

在我的沙箱中,我开发了一个小型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

它不适合我,我正在使用铬.. – Daedalus 2013-03-06 02:34:18

+0

这真的很奇怪,它对我来说工作得很好。加载后,您在右下角窗口中点击新游戏按钮,对吧? – 2013-03-06 05:12:25

+0

没有按钮,只有当我通过打开检查器缩小窗口中打开的可用空间时才会出现该按钮。 – Daedalus 2013-03-06 05:17:10

回答

2

你的问题,我与萤火虫的测试,似乎是在这里:

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

看到活动的固定小提琴,here

+0

我不知道更令人惊讶的是,我错过了这个事实,或者以某种方式管理我的Chrome。无论如何,它是完全固定的。谢谢! – 2013-03-06 09:42:21