レッスンに戻る

ホットキーを拡張

重要度: 5

funccode1code2、...、code_n のコードを持つキーを同時に押すと実行される runOnKeys(func, code1, code2, ... code_n) 関数を作成します。

たとえば、以下のコードは "Q""W" が一緒に押されると(どの言語でも CapsLock の有無にかかわらず)alert を表示します

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

新規のウィンドウでデモ

2つのハンドラーを使用する必要があります: document.onkeydowndocument.onkeyup.

現在押されているキーを保持するために pressed = new Set() を作成しましょう。

最初のハンドラーはそれに追加し、2つ目はそこから削除します。keydown のたびに十分なキーが押されているかどうかをチェックし、押されていれば関数を呼び出します。

サンドボックスで解決策を開いてください。