При KeyboardEvent
срабатывании вы можете проверить, какая клавиша была нажата, потому что это событие содержит информацию, для которой вы можете написать логику.
document.addEventListener("keydown", function(event) ( console.log(event.which); ))
Например, нажав «а», вы получите 65
. По-видимому, лучше написать логику, против которой, поскольку keyCode и charCode сложны:
Свойство event.which нормализует event.keyCode и event.charCode. Рекомендуется смотреть event.which для ввода с клавиатуры.
И:
В событии нажатия клавиши значение Unicode нажатой клавиши сохраняется либо в свойстве keyCode, либо в свойстве charCode, но никогда в обоих. Если нажатая клавиша генерирует символ (например, 'a'), charCode устанавливается на код этого символа с учетом регистра букв. (т.е. charCode учитывает, удерживается ли клавиша Shift). В противном случае код нажатой клавиши сохраняется в keyCode.
Инструмент тестера
См. Тестер Pen event.keyCode Криса Койера (@chriscoyier) на CodePen.
Значения ключевого кода
Вот таблица, содержащая значения из event.which
.
|
|
|
Зелл Лью заметил, что 3 из этих кодов клавиш в Firefox отличаются от остальных браузеров.
;
59 в Firefox, но 186 в других браузерах.=
61 в Firefox, но 187 в других браузерах.-
составляет 173 в Firefox, но 189 в других браузерах.
Важное примечание: эти значения кода ключа действительны только во время событий in keydown
и keyup
. На Mac keypress
события дают вам совершенно другой набор кодов.
Например:
Ключ | event.which в ключе | event.which при нажатии |
а | 65 | 97 |
б | 66 | 98 |
c | 67 | 99 |