Атрибут keyCode события KeyboardEvent
Определение и использование
keyCode属性 возвращает событие, которое запускает Событие onkeypress Unicode код символа клавиши, или событие, которое запускает onkeydown или Событие onkeyup Код клавиши Unicode для клавиши.
Различия между двумя типами кодов:
- Код символа - это цифровой код ASCII символа
- Код клавиши - это число, представляющее собой фактическую клавишу на клавиатуре
Эти типы не всегда означают одно и то же. Например, клавиша "w" и "W" имеют одинаковый код клавиатуры, потому что нажатая клавиша одинакова ("W" = цифра "87"), но код символа различается, потому что resulting символ различается ("w" или "W", то есть "119" или "87"). - Пожалуйста, посмотрите на следующие примеры, чтобы лучше понять это.
Совет:Чтобы понять, был ли нажат клавиша с printable символом (например, "a" или "5"), рекомендуется использовать это свойство в событии onkeypress. Чтобы понять, был ли нажат функциональная клавиша (например, "F1", "CAPS LOCK" или "Home"), используйте события onkeydown или onkeyup.
Комментарий:В Firefox свойство keyCode для события onkeypress не работает (возвращает только 0). Для решения проблемы совместимости между браузерами рекомендуется использовать Свойство whichИспользуется вместе с keyCode, например:
var x = event.which || event.keyCode; // Использование which или keyCode зависит от поддержки браузером
Совет:Для списка всех символов Unicode обратитесь к нашему Полное руководство по Unicode.
Совет:Если нужно преобразовать значение Unicode в символ, используйте Метод fromCharCode().
Комментарий:Этот атрибут только для чтения.
Комментарий:Предоставление свойств keyCode и which предназначено только для совместимости. Последняя версия спецификации DOM событий рекомендует использовать свойство key (если доступно).
Совет:Если вы想知道, были ли нажаты клавиши "ALT", "CTRL", "META" или "SHIFT" при возникновении события клавиатуры, используйте altKey,ctrlKey/,metaKey или shiftKey Свойства.
Пример
Пример 1
Получение значения Unicode нажатой клавиши:
var x = event.keyCode;
Пример 2
Использование onkeypress и onkeydown для демонстрации различий между кодами символов и кодами клавиатуры:
<input type="text" onkeypress="uniCharCode(event)" onkeydown="uniKeyCode(event)"> function uniCharCode(event) { var char = event.which || event.keyCode; document.getElementById("demo").innerHTML = "Код символа Unicode: " + char; } function uniKeyCode(event) { var key = event.keyCode; document.getElementById("demo2").innerHTML = "Код Unicode клавиши: " + key; }
Когда вы нажимаете клавишу "a" на клавиатуре (не используя Capslock), результаты char и key будут:
Код символа Unicode: 97 Код Unicode клавиши: 65
Пример 3
Если пользователь нажал клавишу Escape, покажите текст:
<input type="text" onkeydown="myFunction(event)"> function myFunction(event) { var x = event.keyCode; if (x == 27) { // 27 - это клавиша ESC alert("Вы нажали клавишу Escape!"); } }
Пример 4
Преобразование значения Unicode в символ (не подходит для функциональных клавиш):
var x = event.keyCode; // Получение значения Unicode var y = String.fromCharCode(x); // Преобразование значения в символ
Синтаксис
event.keyCode
Технические детали
Возвратное значение: | Цифровой значений, представляющий код Unicode символа или код клавиши Unicode. |
---|---|
Версия DOM: | DOM Level 2 Events |
Поддержка браузеров
Свойства | Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|---|
keyCode | Поддержка | Поддержка | Поддержка | Поддержка | Поддержка |
Связанные страницы
Руководство по HTML DOM:Атрибут key события KeyboardEvent
Руководство по HTML DOM:Атрибут charCode события KeyboardEvent
Руководство по HTML DOM:Атрибут which события KeyboardEvent