2013-03-06 2 views
0

У меня есть собственный собственный домашний веб-сайт JSFiddle, который я построил в основном для развлечения, и до сих пор он работал очень хорошо, но я развиваюсь исключительно в Chrome. Я хочу упомянуть об этом, потому что я думаю, что моя проблема может (надеюсь) быть исправлена, изменив мою маленькую песочницу, но вот моя основная проблема:Ключевые события, не запущенные внутри iframe для Firefox

В моей песочнице я разработал небольшую реализацию Snake, которая основывается на событиях keydown для управления игроком. Все отлично работает в Chrome, и я очень доволен этим, но в Firefox я не могу контролировать игрока. Вы можете увидеть мои настройки здесь:

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

Игрок, как предполагается, либо управляется с помощью клавиш со стрелками или WASD, но они, кажется, не работает в Firefox. Я видел в another post, что атрибут tabindex="0" должен быть добавлен к элементу, который должен получать фокус (хотя я не уверен, какой элемент был бы, я попытался поместить его в элемент, содержащий рендеринг iframe в родительском документе, элемент iframe и контейнер div внутри iframe).

Может ли кто-нибудь пролить свет на это? Мне бы хотелось выяснить, почему это происходит.

Update:

Я только что загрузил один и тот же код на JSFiddle и у меня такая же проблема. клавиши управления работают для Chrome, но не Firefox:

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

+1

Это не работает для меня, и я использую хром .. – Daedalus

+0

Это действительно странно, все работает отлично. Вы нажмете кнопку «Новая игра» в нижнем правом окне после загрузки, не так ли? –

+0

Нет кнопки, кнопка появляется только тогда, когда я сокращаю доступное пространство в моем окне, открывая инспектора. – Daedalus

ответ

2

Ваша проблема, в моем тестировании с поджигатель, по-видимому, здесь:

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

См неподвижную скрипку в действии, here.

+0

Я не знаю, что более удивительно, тот факт, что я пропустил то или это, как-то ему удается работать на моем Chrome. В любом случае, это полностью исправлено. Спасибо! –

Смежные вопросы