Почему мой код интерактивности клавиатуры работает правильно в IE и Chrome, а не в FireFox? Полный код: http://sgdk2.enigmadream.com/ben/Html5Sample.html. Не стесняйтесь загружать и редактировать файл локально для проверки исправлений (пожалуйста, делайте так, чтобы пропустить неправильные ответы на правильный ответ :)). Он полностью автономен на 100% в одном HTML-файле.
Для вашего удобства здесь, я полагаю, приведен весь код:
var keyboardState;
keyboardState = new Object();
keyboardState.key= { None:0, Enter:13, Shift:16,
/* etc... */};
keyboardState.keyState = new Array();
keyboardState.handleKeyDown = function(e) {
e = e || window.event;
keyboardState.keyState[e.keyCode] = true;
};
keyboardState.handleKeyUp = function(e) {
e = e || window.event;
keyboardState.keyState[e.keyCode] = false;
};
keyboardState.isKeyPressed = function(key) { return keyboardState.keyState[key]; };
...
<body class="unselectable" unselectable="on"
onkeydown="keyboardState.handleKeyDown(event)"
onkeyup="keyboardState.handleKeyUp(event)">
Кажется, что handleKeyDown даже не запускается, если я отлаживаю это право. Это должно быть очень близко к исправлению, потому что оно отлично работает в IE и Chrome.