Rozšíření horkých kláves
důležitost: 5
Vytvořte funkci spusťNaKlávesy(funkce, kód1, kód2, ... kód_n), která spustí funkci funkce při současném stisknutí kláves s kódy kód1, kód2, …, kód_n.
Například následující kód zobrazí alert, když jsou stisknuty současně "Q" a "W" (v jakémkoli jazyce, s CapsLockem nebo bez něj).
spusťNaKlávesy(
() => alert("Ahoj!"),
"KeyQ",
"KeyW"
);
Měli bychom použít dva handlery: document.onkeydown a document.onkeyup.
Vytvořme množinu stisknuté = new Set(), v níž si budeme uchovávat aktuálně stisknuté klávesy.
První handler je do ní bude přidávat, druhý je z ní bude odstraňovat. Při každém keydown si ověříme, zda máme stisknutých dost kláves, a pokud ano, spustíme funkci.