Розширені комбінації гарячих клавіш
важливість: 5
Створіть функцію runOnKeys(func, code1, code2, ... code_n)
, яка запускає func
при одночасному натисканні клавіш із кодами code1
, code2
, …, code_n
.
Наприклад, код нижче показує alert
, коли "Q"
та "W"
натискаються разом (будь-якою мовою, з або без CapsLock)
runOnKeys(
() => alert("Привіт!"),
"KeyQ",
"KeyW"
);
Ми повинні використовувати два обробники: document.onkeydown
і document.onkeyup
.
Давайте створимо набір pressed = new Set()
, щоб зберегти поточні натиснуті клавіші.
Перший обробник додає до нього, а другий видаляє. Кожного разу при keydown
ми перевіряємо, чи достатньо натиснутих клавіш, і запускаємо функцію, якщо це так.