Мне нужно слушать нажатия клавиш пользователя, чтобы активировать некоторые ярлыки в моем приложении (когда пользователь нажимает клавишу «H», он скрывает некоторую часть приложения и т. Д. c). Мне также нужно прислушиваться к клавише Shift или даже к клавише Alt, чтобы иметь более универсальную систему ярлыков.
Это то, что у меня есть:
window.onkeyup = (e) => { keys[e.keyCode] = false; keyRelease(e.keyCode) }
window.onkeydown = (e) => { keys[e.keyCode] = true; keyPress(e.keyCode) }
function keyPress(key) {
switch (key) {
case 37:
//left
break;
case 39:
//right
break;
case 80:
// p
if (keys[16]){
//shift key is also being pressed
// do stuff
}
default:
// code block
}
}
Это работает хорошо, но я чувствую, что это неэффективно, и должен быть лучший способ сделать это, без необходимости поиска кода каждого ключа (который, между прочим, в некоторых браузерах и ОС различается). Имейте в виду, я должен добавить около 30 комбинаций клавиш. Спасибо за вашу помощь!