Ответ 1
См. следующие страницы, они ответят на ваши вопросы:
событие onkeydown, событие onkeypress, свойство keyCode, свойство charCode, какое свойство
Я работаю над обработкой ключей в Javascript. Я провел некоторое исследование и хотел бы знать, правильно ли я понимаю обработку ключей.
Событие KeyDown/KeyUp События key down и key up поддерживаются в IE7+ и Firefox 3. 5+ Я не проверял более ранние версии браузеров, но думаю, что они также поддерживают эти события.
Правильно ли говорить, что у каждой клавиши на клавиатуре всегда будет код клавиши.
CharCode
Значение CharCode доступно при нажатии клавиши. Большинство клавиш будет иметь коды, которые представляют фактическое значение. Некоторые ключи не будут иметь код, связанный с ними. Например. Возврат, удаление, клавиши со стрелками.
Правильно ли мне сказать, что при нажатии клавиш код будет таким же, как и код клавиши?
Порядок событий
Этот порядок отличается от браузера к браузеру? Например, у меня есть две функции. Первый связан с событием KeyDown, второй связан с событием KeyPress. Вызов события KeyPress означает, что событие KeyDown также будет вызвано, когда я хочу, чтобы сработало только одно из этих событий.
Наконец, я подумывал об использовании различных процедур обработки ключей в зависимости от версии браузера. Например:
Это введет дополнительный код, но должно упростить обслуживание. Кроме того, в будущем, когда я захочу предоставить поддержку для другого браузера, я могу просто добавить другую подпрограмму, и это не повлияет на существующую подпрограмму обработки символов.
До сих пор я читал http://www.quirksmode.org
См. следующие страницы, они ответят на ваши вопросы:
событие onkeydown, событие onkeypress, свойство keyCode, свойство charCode, какое свойство
Следующая статья Яна Вольтера никогда не подводила меня и далека от лучшего ресурса в событиях ключевых событий браузера, которые я видел: http://unixpapa.com/js/key.html. Он отвечает на все ваши вопросы.
Следует подчеркнуть, что при тщательном использовании свойств ключевого события в вашем распоряжении почти наверняка никогда не нужно нюхать для конкретного браузера в коде обработки ключей.
2015 обновление:
Согласно MDN event.charCode
, event.keyCode
и event.which
все устарели. event.key
- это самый новый и самый горячий способ проверить, какая клавиша нажата.
Он выглядит прост в использовании, но поддержка браузера не идеальна. Теперь у нас есть частичная поддержка в Chrome 45+ (еще не AFAIK), Firefox 23+ и IE 9 +.