回到课程

扩展热键

重要程度: 5

创建一个 runOnKeys(func, code1, code2, ... code_n) 函数,在同时按下 code1, code2, ... code_n 键时运行函数 func

例如,当按键 "Q""W" 被一起按下时(任何语言中,无论是否 CapsLock),下面的代码将显示 alert

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

在新窗口中演示

我们应该使用两个处理程序:document.onkeydowndocument.onkeyup

让我们创建一个集合 pressed = new Set() 来保存当前被按下的键。

第一个处理程序把当前被按下的键添加到集合中,而第二个处理程序将被松开的按键从集合中移除。我们每次在 keydown 上检查我们是否按下了足够多的键,如果是,则运行函数 func

使用沙箱打开解决方案。