Raccourcis clavier étendus
Créer une fonction runOnKeys(func, code1, code2, ... code_n)
exécutant la fonction func
lorsqu’on appuie simultanément sur les touches avec les codes suivant code1
, code2
, …, code_n
.
Par exemple, le code ci-dessous montre alert
lorsque "Q"
et "W"
sont appuyées ensemble (dans n’importe quelle langue, avec ou sans l’activation de La touche Majuscule, CapsLock)
runOnKeys(
() => alert("Hello!"),
"KeyQ",
"KeyW"
);
Nous devons utiliser deux gestionnaires: document.onkeydown
et document.onkeyup
.
L’ensemble pressed
doit garder les touches en cours appuyées.
Créons un set pressed = new Set()
pour garder les touches actuellement enfoncées.
Le premier gestionnaire en ajoute, tandis que le second en supprime. Chaque fois sur keydown
nous vérifions si nous avons suffisamment de touches enfoncées et exécutons la fonction si c’est le cas.