返回課程

擴充熱鍵

重要性:5

建立一個函式 runOnKeys(func, code1, code2, ... code_n),在同時按下具有代碼 code1code2、...、code_n 的按鍵時執行 func

例如,以下程式碼會在同時按下 "Q""W" 時顯示 alert(在任何語言中,不論是否開啟 CapsLock)

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

在新視窗中示範

我們應該使用兩個處理常式:document.onkeydowndocument.onkeyup

讓我們建立一個集合 pressed = new Set() 來儲存目前已按下的按鍵。

第一個處理常式會將按鍵加入集合,而第二個處理常式會將按鍵從集合中移除。每次在 keydown 時,我們都會檢查是否有按下足夠的按鍵,如果有,就執行函式。

在沙盒中開啟解答。