Как определить Tab
document.addEventListener('keydown', (event) => {
if (event.key === "Tab") {
// Tab was pressed
}
});
Используйте event.key, чтобы реагировать на то, что означает клавиша (значение зависит от раскладки клавиатуры), и event.code для её физического положения, например WASD в играх. keyCode и which устарели: они по-прежнему работают, но их значения отличаются в разных браузерах и раскладках.
Как браузеры обрабатывают Tab
Tab переводит фокус на следующий фокусируемый элемент, а Shift+Tab — на предыдущий. Перехватывайте клавишу только в виджетах, которым она нужна, например в редакторах кода, и обязательно предоставьте пользователям клавиатуры способ выйти из такого виджета (например, Escape, затем Tab).
В React
<input onKeyDown={(e) => { if (e.key === "Tab") { /* … */ } }} />Поиск keycode для JavaScript
Нажмите любую клавишу и сразу увидите все свойства события клавиатуры, а также готовый к копированию фрагмент keydown для горячих клавиш.