Создайте функцию runOnKeys(func, code1, code2, ... code_n), которая запускает func при одновременном нажатии клавиш со скан-кодами code1, code2, …, code_n.
Например, код ниже выведет alert при одновременном нажатии клавиш "Q" и "W" (в любом регистре, в любой раскладке)
runOnKeys(
function() { alert("Привет!") },
"Q".charCodeAt(0),
"W".charCodeAt(0)
);
Ход решения
Решение
Ход решения
- Функция
runOnKeys— с переменным числом аргументов. Для их получения используйтеarguments. - Используйте два обработчика:
document.onkeydownиdocument.onkeyup. Первый отмечает нажатие клавиши в объектеpressed = {}, устанавливаяpressed[keyCode] = trueа второй — удаляет это свойство. Если все клавиши с кодами изargumentsнажаты — запускайтеfunc. - Возникнет проблема с повторным нажатием сочетания клавиш после
alert, решите её.
Решение
#509