Android не отправляет правильный код клавиши при вводе текста - PullRequest
1 голос
/ 27 апреля 2020

Я хочу записать событие keydown для заданного ключа c (<) для всех элементов веб-сайта. На Windows и iOS это не проблема и все работает нормально. Однако на Android (OnePlus 6, Android 10, Chrome 81, Gboard-Keyboard) мне не удалось получить правильный код клавиши для нажатой клавиши, в результате чего важная функция моего сайта не работала. Код клавиши всегда отображается как неопознанный, 0 или 226. </p>

Что я пытаюсь выполнить sh:

  1. Фокусировать любой элемент на странице
  2. Нажмите <-key </li>
  3. Сфокусируйтесь на определенном входе, как только нажмите кнопку <</li>

Код, который работает с Windows и iOS:

$(document).keydown(function(e) {
  e = e || window.event;
  if (e.key === "<") {
    $("#text2").focus();
  } else {
    // this is just for testing purposes
    alert(e.key);
  }
});

Вот пример jsfiddle: http://jsfiddle.net/rv6tc5mj/15/

То, что я пробовал до сих пор:

  1. переключение с keydown на keyup, нажатие клавиши - keyup ничего не меняет, нажатие клавиши не срабатывает при Android
  2. с использованием другой клавиатуры - безуспешно
  3. при использовании e.keyCode, e.which, e.charCode - безуспешно

Как кажется, эта проблема известна, но эти обходные пути не работают в моем случае, так как мне нужно перехватывать событие keydown везде, а не только в одном входе.

Есть ли у вас какие-либо идеи или обходные пути? Любая помощь будет высоко ценится! Заранее спасибо.

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