一次检测多个按键,按下其他键时不响应

Detecting multiple key press at once and don't response when other keys are pressed

我有一个管理面板,我想设置一个键盘快捷键,当用户同时按下 {A+D+M+N} 时将其重定向到此面板。

我有这个代码:

document.onkeypress = function (e) {
    e = e || window.event;
    // use e.keyCode
};

但是只对一次按键有效,对多键检测无效

此外,我不会只检测 (A+D+M+N),如果用户按下键盘上的所有按钮,或者 (A+D+M+N+X+ Z) 例如,它不应该响应。

有什么想法或框架可以实现吗?

keyPressListener,是我为此开发的库。

首先,由于您只想匹配首选键而不匹配任何其他键,因此请确保将 ignoreOtherInput 设置为 false:

keyPressListener.config({ignoreOtherInput: false});

其次,现在可以调用监听函数了:

keyPressListener.when('A+D+M+N', function(){
  window.location.href = '/admin-panel'; // If user pressed (A+D+M+N), go to admin panel
});

因此,如果用户按下 (A+D+M+N),它将把他重定向到管理面板 如果他按下了键盘上的所有按钮,或者例如(Ctrl+A+D+M+N),它不会响应。

更多:@https://github.com/RyadPasha/keyPressListener