【问题标题】:Detecting multiple key press at once and don't response when other keys are pressed一次检测多个按键,按下其他按键时不响应
【发布时间】:2019-07-20 10:49:24
【问题描述】:

我有一个管理面板,我想设置一个键盘快捷键,当用户同时按下 {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) ,它不应该响应。

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

【问题讨论】:

  • 嗨,欢迎来到堆栈溢出。 investigated 到现在为止你有什么?

标签: javascript keypress


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-02
    • 2017-02-16
    • 1970-01-01
    • 2017-05-03
    相关资源
    最近更新 更多