返回课程

扩展热键

重要性:5

创建一个函数 runOnKeys(func, code1, code2, ... code_n),该函数在同时按下代码为 code1code2、…、code_n 的键时运行 func

例如,以下代码显示当同时按下 "Q""W" 时(在任何语言中,无论是否开启 CapsLock)会弹出警报。

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

在新窗口中演示

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

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

第一个处理程序向集合中添加键,而第二个处理程序从集合中删除键。每次在 keydown 事件发生时,我们检查是否按下了足够的键,如果按下了,则运行该函数。

在沙箱中打开解决方案。