Редактор блокировки клавиатуры для буквенно-цифровых клавиш - PullRequest
0 голосов
/ 27 октября 2019

Я работаю над проектом редактора, и понял, что в общих используемых редакторах UX для ввода буквенно-цифровых клавиш регистрируется на keyDown один раз, для других ключей просто на keyDown. например. Если вы нажмете a и удержите, он вставит a, но для . он вставит ....... Итак, моя реализация была такой:

let keydownLock = false
const onKeyUp = () => { keydownLock = false }
const onKeyDown = () => {
  if (keydownLock) return
  if (isAlphanumeric) keydownLock = true
  other key handling...
}

Мои вопросы:

  1. Если это стандартный редактор UX для ввода с клавиатуры, укажите мне несколько ссылок.
  2. Есть ли какое-то специальное ключевое событие для более легкой реализации?

Обновление : я понял, что это стандартное поведение для всех элементов HTML, редактируемых с помощью содержимого. Так что не нужно ничего реализовывать. Но мой первый вопрос все еще остается.

1 Ответ

0 голосов
/ 28 октября 2019

Из того, что я понял из вашего вопроса, в основном в Javascript событие onkeypress похоже на событие onkeydown, но оно не срабатывает для всех типов ключей во всех браузерах.

Если вы хотите отменить вводс клавиатуры лучше отменить события onkeydown и onkeypress, поскольку иногда событие onkeypress / onkeydown необходимо отменить в зависимости от браузера и типа нажатой клавиши. Например, если вы хотите отменить курсор влево, вверх, вправо и вниз, событие onkeydown необходимо отменить в Internet Explorer, Firefox, Google Chrome и Safari, а событие onkeypress - в Opera. Для буквенно-цифровых символов достаточно отменить одно из событий onkeydown и onkeypress.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...