Что использовать вместо KeyboardEvent.keyCode для сочетаний клавиш в разных раскладках?Javascript

Форум по Javascript
Ответить
Anonymous
 Что использовать вместо KeyboardEvent.keyCode для сочетаний клавиш в разных раскладках?

Сообщение Anonymous »

У меня есть приложение, которое использует устаревшее свойство keyCode для сочетаний клавиш. Мне нужно обновить свой код, чтобы использовать современную альтернативу, которая работает стабильно независимо от конфигурации клавиатуры или языка пользователя.
В документации MDN предлагается использовать либо KeyboardEvent.code, либо KeyboardEvent.key. Однако ни один из них не заменяет полностью keyCode в моих случаях использования. Изначально я решил использовать код, поскольку он кажется более независимым от языка. Однако я столкнулся с проблемами, такими как необходимость отдельно обрабатывать как обычные клавиши, так и клавиши цифровой клавиатуры (Enter, NumpadEnter, Numpad1...).
Текущая проблема, с которой я столкнулся, вызвана несовпадением раскладок клавиатуры. Например, при использовании физической клавиатуры QWERTY с раскладкой ОС AZERTY и нажатии Ctrl+A:
  • Нажатие клавиши «A» (физическая «Q») дает: code = «KeyQ», key = «a»
  • Проверка моего кода не удалась, поскольку ожидается «KeyA»
Вместо этого я мог бы проверить ключ, но это не работает с нелатинскими языками, где одна и та же физическая клавиша создает разные символы (кириллица, греческий и т. д.). Мне потребуются тщательные проверки, чтобы убедиться, что все символы, которые раньше работали, обрабатываются и сейчас.
Мой вопрос заключается в том, существует ли лучший и более современный подход для надежной обработки сочетаний клавиш. Что вы используете в своем приложении вместо keyCode?

Подробнее здесь: https://stackoverflow.com/questions/798 ... ross-diffe
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»