Tasti di scelta rapida estesi
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"
);
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.