ホットキーを拡張
重要度: 5
func
が code1
、code2
、...、code_n
のコードを持つキーを同時に押すと実行される runOnKeys(func, code1, code2, ... code_n)
関数を作成します。
たとえば、以下のコードは "Q"
と "W"
が一緒に押されると(どの言語でも CapsLock の有無にかかわらず)alert
を表示します
runOnKeys(
() => alert("Hello!"),
"KeyQ",
"KeyW"
);
2つのハンドラーを使用する必要があります: document.onkeydown
と document.onkeyup
.
現在押されているキーを保持するために pressed = new Set()
を作成しましょう。
最初のハンドラーはそれに追加し、2つ目はそこから削除します。keydown
のたびに十分なキーが押されているかどうかをチェックし、押されていれば関数を呼び出します。