Я хочу записать событие keydown для заданного ключа c (<) для всех элементов веб-сайта. На Windows и iOS это не проблема и все работает нормально. Однако на Android (OnePlus 6, Android 10, Chrome 81, Gboard-Keyboard) мне не удалось получить правильный код клавиши для нажатой клавиши, в результате чего важная функция моего сайта не работала. Код клавиши всегда отображается как неопознанный, 0 или 226. </p>
Что я пытаюсь выполнить sh:
- Фокусировать любой элемент на странице
- Нажмите <-key </li>
- Сфокусируйтесь на определенном входе, как только нажмите кнопку <</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/
То, что я пробовал до сих пор:
- переключение с keydown на keyup, нажатие клавиши - keyup ничего не меняет, нажатие клавиши не срабатывает при Android
- с использованием другой клавиатуры - безуспешно
- при использовании e.keyCode, e.which, e.charCode - безуспешно
Как кажется, эта проблема известна, но эти обходные пути не работают в моем случае, так как мне нужно перехватывать событие keydown везде, а не только в одном входе.
Есть ли у вас какие-либо идеи или обходные пути? Любая помощь будет высоко ценится! Заранее спасибо.