KeyboardEvent какое свойство
Пример
Получите значение Unicode нажатой клавиши клавиатуры:
var x = event.which;
Другие примеры «Попробуйте сами» ниже.
Определение и использование
Свойство which возвращает код символа Unicode для клавиши, вызвавшей событие onkeypress , или код клавиши Unicode для клавиши, вызвавшей событие onkeydown или onkeyup .
Разница между двумя типами кода:
- Коды символов — число, представляющее символ ASCII.
- Коды клавиш — число, представляющее реальную клавишу на клавиатуре.
Эти типы не всегда означают одно и то же; например, строчная «w» и прописная «W» имеют одинаковый код клавиатуры, потому что клавиша, которая нажимается на клавиатуре, одна и та же (просто «W» = число «87»), но разные код символа, потому что результирующий символ отличается (либо «w», либо «W», что равно «119» или «87») — см. «Дополнительные примеры» ниже, чтобы лучше понять это.
Совет: Чтобы узнать, нажимает ли пользователь печатаемую клавишу (например, "a" или "5"), рекомендуется использовать это свойство в событии onkeypress. Чтобы узнать, нажимает ли пользователь функциональную клавишу (например, «F1», «CAPS LOCK» или «Home»), используйте событие onkeydown или onkeyup.
Примечание. Свойство which не поддерживается в IE8 и более ранних версиях. Для этих версий браузера вы можете использовать свойство keyCode . Однако свойство keyCode не работает с событием onkeypress в Firefox. Для кросс-браузерного решения вы можете использовать следующий код:
var x = event.which || event.keyCode; // Use either which or keyCode, depending on browser support
Совет. Список всех символов Unicode см. в нашем Полном справочнике по Unicode .
Совет: Если вы хотите преобразовать возвращенное значение Unicode в символ, используйте метод fromCharCode() .
Примечание. Это свойство доступно только для чтения.
Примечание. Свойство which и keyCode предоставляются только для совместимости. В последней версии спецификации событий DOM вместо этого рекомендуется использовать свойство ключа (если оно доступно).
Совет: Если вы хотите узнать, была ли нажата клавиша «ALT», «CTRL», «META» или «SHIFT» при возникновении события клавиши, используйте свойство altKey , ctrlKey , metaKey или shiftKey .
Поддержка браузера
Цифры в таблице указывают на первую версию браузера, которая полностью поддерживает это свойство.
Property | |||||
---|---|---|---|---|---|
which | Yes | 9.0 | Yes | Yes | Yes |
Синтаксис
event.which
Технические детали
Возвращаемое значение: | Число, представляющее либо код символа Unicode, либо код ключа Unicode. |
---|---|
Версия ДОМ: | События DOM уровня 2 |
Дополнительные примеры
Пример
Использование onkeypress и onkeydown для демонстрации различий между кодами символов и кодами клавиатуры:
<input type="text" onkeypress="uniCharCode(event)" onkeydown="uniKeyCode(event)">
function uniCharCode(event) {
var char = event.which || event.keyCode; // event.keyCode is used for IE8 and earlier
document.getElementById("demo").innerHTML = "Unicode CHARACTER code: " + char;
}
function uniKeyCode(event) {
var key = event.which || event.keyCode; // event.keyCode is used for IE8 and earlier
document.getElementById("demo2").innerHTML = "Unicode KEY code: " + key;
}
При нажатии клавиши «a» на клавиатуре (без использования Caps Lock) результатом char и key будет:
Unicode CHARACTER code: 97
Unicode KEY code: 65
Пример
Предупреждать текст, если пользователь нажимает клавишу Escape:
<input type="text" onkeydown="myFunction(event)">
function myFunction(event) {
var x = event.which || event.keyCode; // event.keyCode is used for IE8 and earlier
if (x == 27) { // 27 is the ESC key
alert ("You pressed the Escape key!");
}
}
Пример
Преобразуйте значение Unicode в символ (не работает для функциональных клавиш):
var x = event.which || event.keyCode; // Get the Unicode value
var y = String.fromCharCode(x); // Convert the value into a character
Связанные страницы
Справочник по HTML DOM: свойство клавиши KeyboardEvent
Справочник по HTML DOM: свойство keyCode KeyboardEvent
Справочник по HTML DOM: свойство KeyboardEvent charCode