Extendiendo atajos de teclado
Crea una función runOnKeys(func, code1, code2, ... code_n)
que ejecute func
al presionar simultáneamente las teclas con códigos code1
, code2
, …, code_n
.
Por ejemplo, el siguiente código muestra un alert
cuando "Q"
y "W"
se presionan juntas (en cualquier lenguaje, con o sin mayúscula)
runOnKeys(
() => alert("¡Hola!"),
"KeyQ",
"KeyW"
);
Debemos manejar dos eventos: document.onkeydown
y document.onkeyup
.
Creemos un set pressed = new Set()
para registrar las teclas presionads actualmente.
El primer manejador las agrega en él, mientras que el segundo las quita. Con cada keydown
verificamos si tenemos suficientes teclas presionadas, y ejecutamos la función si es así.