torna alle lezioni

Tasti di scelta rapida estesi

importanza: 5

Create una funzione runOnKeys(func, code1, code2, ... code_n) che esegue func quando vengono premuti contemporaneamente i tasti con i codici code1, code2, …, code_n.

Ad esempio, il seguente codice mostra un alert quando vengono premuti "Q" e "W" insieme (in qualunque lingua, con o senza il CapsLock)

runOnKeys(
  () => alert("Hello!"),
  "KeyQ",
  "KeyW"
);

Demo in una nuova finesta

Qui dobbiamo usare due gestori: document.onkeydown e document.onkeyup.

Andiamo ad impostare pressed = new Set() per memorizzare i tasti attualmente premuti.

Il primo gestore lo aggiunge, mentre il secondo lo rimuove. Ad ogni keydown controlliamo se abbiamo abbastanza tasti premuti, ed in caso affermativo la funzione verrà eseguita.

Apri la soluzione in una sandbox.