retour au cours

Raccourcis clavier étendus

importance: 5

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

Démo dans une nouvelle fenêtre

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.

Ouvrez la solution dans une sandbox.