Queremos que este proyecto de código abierto esté disponible para personas de todo el mundo.

Ayuda a traducir el contenido de este tutorial a tu idioma!

regresar a la lección

Extendiendo atajos de teclado

importancia: 5

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" );

Demo en nueva ventana

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í.

Abrir la solución en un entorno controlado.