onkeydown в HTML - какая клавиша была нажата?

Простой вопрос: когда я использую событие onkeydown в HTML, как я могу узнать, какая клавиша была нажата? Я уверен, что это очень просто, но я пытался погуглить; w3schools не помогли, и все остальные результаты были людьми, которые спрашивали о конкретных браузерах. Нет ли способа, который работает во всех основных браузерах?

Спасибо!


person user2226001    schedule 11.06.2013    source источник


Ответы (2)


Событие, которое вы ищете, — это событие keydown< /em> и предоставляет вам следующие свойства

  • char DOMString (строка) Символьное значение ключа. Если ключ соответствует печатному символу, это значение является непустой строкой Unicode, содержащей этот символ. Если ключ не имеет печатного представления, это пустая строка. Смотрите имена ключей и значения char для деталей. Только чтение. Примечание. Если ключ используется как макрос, который вставляет несколько символов, значением этого атрибута является вся строка, а не только первый символ.

  • key DOMString (строка) Ключевое значение ключа, представленного событием. Если значение имеет печатное представление, значение этого атрибута совпадает со значением атрибута char. В противном случае это одна из строк значений ключа, указанных в {{ anch("Значения ключа") }}. Если ключ не может быть идентифицирован, это строка «Неидентифицированный». Смотрите имена ключей и значения char для деталей. Только чтение.

  • charCode Устарело Unsigned long (int) Ссылочный номер ключа в Unicode; этот атрибут используется только событием нажатия клавиши. Для ключей, атрибут char которых содержит несколько символов, это значение Unicode для первого символа в этом атрибуте. Только для чтения.
    Внимание! Этот атрибут устарел; вместо этого следует использовать char, если он доступен.

  • keyCode Устарело Unsigned long (int) Числовой код, зависящий от системы и реализации, идентифицирующий немодифицированное значение нажатой клавиши. Обычно это десятичный код ASCII ({{ RFC(20) }}) или код Windows 1252, соответствующий ключу; см. {{ anch("Виртуальные коды ключей") }} для списка общих значений. Если ключ не может быть идентифицирован, это значение равно 0. Только для чтения.
    Предупреждение. Этот атрибут устарел; вместо этого следует использовать ключ, если он доступен.

  • which Устарело Unsigned long (int) Числовой код, зависящий от системы и реализации, идентифицирующий немодифицированное значение нажатой клавиши; обычно это то же самое, что и keyCode. Только для чтения.
    Внимание! Этот атрибут устарел; вместо этого следует использовать ключ, если он доступен.

Поскольку реализация несовместима, вам необходимо использовать логический ИЛИ ||, чтобы получить тот, который поддерживается браузером клиента.

person Paul S.    schedule 11.06.2013
comment
Спасибо, но это говорит о том, что я должен использовать event.what, хотя он устарел? Кажется, это единственное, что работает в Chrome. - person user2226001; 11.06.2013
comment
@ user2226001 Я сделал эту скрипку, чтобы вы могли увидеть каждую из них в действии. - person Paul S.; 11.06.2013

Обычно вы хотите избежать установки событий в html. но если бы мне пришлось угадать, ваш код выглядит примерно так:

<tag onkeydown="javascript:function_name()">

Наличие вашего фактического кода помогло бы направить это немного больше, но это следующий шаг.

function function_name(event){
     console.log(event.key) //or event.keyCode / event.which
}

Это должно вывести нажатую вами клавишу. для вашей собственной справки.

person Jordan Ramstad    schedule 11.06.2013
comment
Вы имеете в виду event.what, верно? Это не отвратительная собственность. :) - person Marc Marta; 11.06.2013