2013-06-11 2 views
4

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

Спасибо!

+0

http://stackoverflow.com/questions/1648130/keycode-on-keydown-event – Cherniv

ответ

6

событие вы ищете, keydown Event, и она предоставляет вам со следующими свойствами

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

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

  • charCodeУстаревшие неподписанных долго (INT) Unicode, справочный номер ключа; этот атрибут используется только при событии нажатия клавиши. Для ключей, чей атрибут char содержит несколько символов, это значение Юникода первого символа в этом атрибуте. Только чтение.
    Предупреждение: этот атрибут устарел; вы должны использовать char, если это возможно.

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

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

Как реализация inconsistant, вам нужно использовать logical OR||, чтобы получить один поддерживаемый браузер клиента.

+0

Спасибо, но это предполагает, что я должен использовать event.which, хотя он устарел? Это единственный, кто работает в Chrome. – user2226001

+0

@ user2226001 Я сделал [** эту скрипку **] (http://jsfiddle.net/zqene/), чтобы вы могли видеть каждый в действии. –

0

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

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

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

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

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

+2

Вы имеете в виду event.which, правильно? Это не омерзительная собственность. :) –

+0

Lol Я исправлю это. –

Смежные вопросы