レッスンに戻る

拡張ホットキー

重要性: 5

コード code1, code2, …, code_n のキーを同時に押したときに func を実行する関数 runOnKeys(func, code1, code2, ... code_n) を作成してください。

例えば、下のコードは、 "Q""W" が同時に押されたときに alert を表示します(任意の言語で、CapsLockの有無にかかわらず)。

runOnKeys(
  () => alert("Hello!"),
  "KeyQ",
  "KeyW"
);

新しいウィンドウでデモ

私たちは2つのハンドラを使う必要があります: document.onkeydowndocument.onkeyup です。

Set pressed は現在押されているキーを保持する必要があります。

最初のハンドラでそこに追加し、一方で2つ目のハンドラではそこから削除します。すべての keydown で必要なキーを押しているかをチェックし、その場合に関数を実行します。

サンドボックスで解答を開く