Що таке коди ключів JavaScript? [зачинено]


82

Які коди клавіш доступні для JavaScript? Якщо вони не однакові для всіх браузерів, перелічіть коди клавіш для кожного браузера.


Отже, для повного ви хочете, як і весь діапазон Unicode? Ви повинні вказати, що ви маєте на увазі під "повним".
Якуб Хампл

Під "повним" я маю на увазі, що містить усі номери клавіш. Наведені мною приклади дають числа 8,9,13,16,17 ... Таким чином, пропускаючи деякі числа.
Web_Designer

3
Я впевнений, що існує незліченна кількість символів, яким присвоюються ключові коди JavaScript.
Web_Designer

7
Чому б не створити таку таблицю самостійно, використовуючи JavaScript?
pimvdb

1
@pimvdb Послухався вашої поради! stackoverflow.com/a/14905611/552067
Web_Designer

Відповіді:


59

keyCodes відрізняються від значень ASCII. Повне посилання на keyCode див. На http://unixpapa.com/js/key.html

Наприклад, номери Numpad мають коди клавіш 96 - 105, що відповідає початку малого алфавіту в ASCII. Це може призвести до проблем із перевіркою числового введення.


2
Сторінка, на яку посилається, не містить повного посилання. Це адекватно пояснює, що коди клавіш залежать від клавіатури, а значення кодів клавіш або їх комбінації залежать від програмного забезпечення, яке їх інтерпретує. Тож повного списку бути не може.
Jukka K. Korpela

9
http://www.javascriptkeycode.com має зручний генератор коду клавіш, який я нещодавно використовував для тестування різних комбінацій клавіатури.
Raz Wilson

30

Далі слідують @ поради pimvdb в , і створив свій власний:

http://daniel-hug.github.io/characters/

Наберіться терпіння, оскільки для створення елемента для кожного з 65536 символів, що мають код ключа JavaScript, потрібно кілька секунд.


13
Жахливий сайт, щоразу дає змогу моєму браузеру виходити з ладу. Не використовуйте це!
Флоріан Лейтгеб

@Floeee На жаль, наразі він генерує рядок таблиці для всіх 65536 символів, які мають код ключа JavaScript. Це робить дуже ефективно, але все одно це займає 10-20 секунд. Я можу змінити його, щоб він завантажував 1000 лише для початку, а потім більше за запитом. Відповідь відредагована, щоб пояснити це.
Web_Designer

Чому б вам не показати просте текстове повідомлення на початку сторінки, що пояснює це?
Джаред,

4
Можливо, буде точніше сказати, що "для безповоротного збою браузера потрібно 10-20 секунд, поки ви не припините процес".
Dissident Rage

4
Це charCodes, а не keyCodes. коди ключів перелічені в розділі 3.3 unixpapa.com/js/key.html
Semra

19

Мені потрібно було щось подібне для інтерфейсу конфігурації керування грою, тому я склав список для стандартних кодів клавіатури розкладки клавіатури в США і зіставив їх із відповідними назвами клавіш.

Ось скрипка, що містить карту для коду -> назва та наочно: http://jsfiddle.net/vWx8V/

Якщо ви хочете підтримувати інші макети ключів, вам доведеться змінити ці карти, щоб розмістити їх окремо.

Тобто, якщо ви не шукали перелік значень коду ключа, які включали керуючі символи та інші спеціальні значення, які неможливо (або рідко) вводити за допомогою клавіатури і можуть виходити за рамки keydown/ keypress/ keyupподій Javascript. Багато з них є контрольними символами або спеціальними символами типу null( \0), і вони вам, швидше за все, не знадобляться.

Зверніть увагу, що кількість клавіш на повній клавіатурі менше, ніж багато значень коду клавіш.


ще одна подяка. наявність їх уже в об’єктах - це приємна економія часу.
Чарлі Робертс,

Коли я натискаю праву кнопку + cmd на моєму mac, вона повертається правою кнопкою миші?
серпень

8

http://keycodes.atjayjo.com/

Ця програма просто чудова. По суті, це віртуальна клавіатура, яка одразу показує код клавіші, натиснутий на стандартній американській клавіатурі.


4
Незважаючи на зусилля OP, щоб продовжити. Це є просто дивовижним!
sealocal



1

Під час запуску цього фрагмента буде дана одна можлива відповідь.

document.write('<table>')
for (var i = 0; i < 250; i++) {
  document.write('<tr><td>' + i + '</td><td>' + String.fromCharCode(i) + '</td></tr>')
}
document.write('</table>')
td {
  border: solid 1px;
  padding: 1px 12px;
  text-align: right;
}
table {
  border-collapse: collapse;
}
* {
  font-family: monospace;
  font-size: 1.1em;
}


2
Це не коди клавіш, це коди символів. Це інакше
Лукас Едер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.