События клавиатуры
В JavaScript у нас есть три события клавиатуры
keydown
keypress
keyup
срабатывает именно в этом порядке.
на мой взгляд, лучший способ работы с навигацией с помощью клавиатуры - использовать событие keydown, как в примере Сандеша.
Обработка событий
Для обработки этих событий у вас есть 3 способа: (примеры для «keydown»)
1. в разметке
<element onkeydown="myScript">
2. JavaScript element.onkeydown
object.onkeydown = function(){myScript};
3. JavaScript element.addEventListener
object.addEventListener("keydown", myScript);
Из-за проблем с безопасностью лучше всего использовать третий. (Вы можете получить больше информации, прибегая к помощи «XSS» или «межсайтовых сценариев»). Для предотвращения XSS на вашем сайте вам нужно добавить некоторые заголовки http, которые блокируют встроенные сценарии ( CSP ).
кроме того, вы можете передать true
третьему параметру метода addEventListener
, чтобы захватить событие перед его отправкой в любой EventTarget под ним в дереве DOM, а затем вы можете остановить распространение, если код ключа соответствует зарезервированному. Это зависит от опыта пользователя, который вы хотите реализовать.
* 1051 Кодовые ключи *
Попробуйте этот сайт, чтобы получить коды клавиш: keycode.info
на мой взгляд, для вашего случая лучше всего использовать event.code
.
Ресурсы:
MDN - нажатие клавиши
MDN - addEventListener