前端记录用户正在按的按键的功能

我有这样一个需求, 需要检测用户正在按下的按键,如果是某一个组合按键(比如command + shift + p), 我就执行某一个操作。

但是遇到了问题, 就是复合按键的keyup事件没有触发,而仅仅触发了keydown。

代码:

const pressingKeyCode = {};const COMMAND = 91;const SHIFT = 16;const P = 80;window.addEventListener('keydown', e => {  console.log('keydown', e.keyCode);
  pressingKeyCode[e.keyCode] = true;  if (
    pressingKeyCode[COMMAND] &&
    pressingKeyCode[SHIFT] &&
    pressingKeyCode[P]
  ) {    console.log('呵呵');
  }
});function handleKeyUp(e) {  console.log('keyup', e.keyCode);
  pressingKeyCode[e.keyCode] = false;
}window.addEventListener('keyup', handleKeyUp);
单个按键是没有问题的

可重现的demo地址: https://codepen.io/zhipenglu/...


冉冉说
浏览 537回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript