Что такое ключевые коды JavaScript? [закрыто]

82

Какие коды клавиш доступны для JavaScript? Если они не одинаковы для всех браузеров, укажите коды клавиш для каждого браузера.

Веб-дизайнер
источник
Итак, для завершения вы хотите, чтобы весь диапазон Unicode? Вы должны указать, что вы имеете в виду под словом «полный».
Якуб Хэмпл,
Под полным я подразумеваю наличие всех кодовых номеров. Примеры, которые я привел, дают числа 8,9,13,16,17 ... Таким образом, пропуская некоторые числа.
Web_Designer 09
3
Я верю, что существует счетное количество символов, которым назначаются коды клавиш JavaScript.
Web_Designer 09
7
Почему бы не создать такую ​​таблицу самостоятельно с помощью JavaScript?
pimvdb 09
1
@pimvdb Прислушался к твоему совету! stackoverflow.com/a/14905611/552067
Web_Designer

Ответы:

59

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

Например, числа на цифровой клавиатуре имеют коды клавиш 96–105, что соответствует началу строчного алфавита в ASCII. Это может привести к проблемам при проверке числового ввода.

user736373
источник
2
Ссылка на страницу не содержит полной ссылки. Он адекватно объясняет, что коды клавиш зависят от клавиатуры, а значение кодов клавиш или комбинаций кодов клавиш зависит от программного обеспечения, которое их интерпретирует. Так что полного списка быть не может.
Юкка К. Корпела
9
На http://www.javascriptkeycode.com есть удобный генератор кода клавиш, который я недавно использовал для тестирования различных комбинаций клавиатуры.
Раз Уилсон,
30

Последовал совету @pimvdb и создал свой:

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

Будьте терпеливы, так как создание элемента для каждого из 65536 символов, имеющих код клавиши JavaScript, занимает несколько секунд.

Веб-дизайнер
источник
13
Ужасный сайт, каждый раз позволяет моему браузеру вылетать. Не используйте это!
Флориан Лейтгеб
@Floeee К сожалению, в настоящее время он генерирует строку таблицы для всех 65536 символов, которые имеют код клавиши javascript. Делает это очень эффективно, но все равно занимает 10-20 секунд. Я мог бы изменить его так, чтобы он загружал 1000 только для начала, а затем еще по запросу. Ответ отредактирован, чтобы объяснить это.
Web_Designer 05
Почему бы вам не показать простое текстовое сообщение в начале страницы, объясняющее это?
Джаред
4
Более точным было бы сказать, что «требуется 10-20 секунд, чтобы необратимо вывести браузер из строя, пока вы не завершите процесс».
Dissident Rage
4
Это charCodes, а не keyCodes. Кодовые ключи перечислены в разделе 3.3 unixpapa.com/js/key.html
Семрой
19

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

Вот скрипка, которая содержит карту для кода -> имя и наоборот: http://jsfiddle.net/vWx8V/

Если вы хотите поддерживать другие раскладки клавиш, вам необходимо изменить эти карты, чтобы приспособить их отдельно.

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

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

Игривый
источник
еще одна благодарность. наличие их уже в объектах - хорошая экономия времени.
Чарли Робертс
Когда я нажимаю правую кнопку + cmd на моем Mac, он возвращает Right Click?
Август
8

http://keycodes.atjayjo.com/

Это приложение просто потрясающее. По сути, это виртуальная клавиатура, которая сразу показывает код, нажатый на стандартной американской клавиатуре.

чиминикиз
источник
4
Несмотря на усилия ОП по отслеживанию. Это является просто удивительным!
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
Это не коды клавиш, это коды символов. Это другое
Лукас Эдер