Javascript/jQuery : Convert key combo to string?

标签 javascript jquery keypress

我正在寻找一个现有的 Javascript 库,或者更好的是一个 jQuery 插件,它可以检测组合键并输出相应的字符串(例如,“ctrl+shift+f”)。这是为了允许用户为 Google Chrome 插件配置组合键。 BetterTouchTool ( http://www.boastr.de/ ) 的首选项行为是我所说的一个很好的例子。有没有人遇到过这样的事情?

最佳答案

我认为这样的事情可能会有所帮助:

document.onkeydown = KeyDownHandler;
document.onkeyup = KeyUpHandler;
var CTRL = false;      
var SHIFT = false;     
var ALT = false;
var CHAR_CODE = -1;

function KeyDownHandler(e) {
    var x = '';
    if (document.all) {
        var evnt = window.event;
        x = evnt.keyCode;
    }
    else {
        x = e.keyCode;
    }
    DetectKeys(x, true);
    DoSometing();
}

function KeyUpHandler(e) {
    var x = '';
    if (document.all) {
        var evnt = window.event;
        x = evnt.keyCode;
    }
    else {
        x = e.keyCode;
    }
    DetectKeys(x, false);
    DoSometing();

}
function DetectKeys(KeyCode, IsKeyDown) {
    if (KeyCode == '16') {
        SHIFT = IsKeyDown;
    }
    else if (KeyCode == '17') {
        CTRL = IsKeyDown;
    }
    else if (KeyCode == '18') {
        ALT = IsKeyDown;
    }
    else {
        if(IsKeyDown)
            CHAR_CODE = KeyCode;
        else
            CHAR_CODE = -1;
    }
}

function DoSometing() {
    //check for keys here
}

希望有用

关于Javascript/jQuery : Convert key combo to string?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8441295/

相关文章:

javascript - 在 node-webkit 中获取 ctrl-f/ctrl-a 按键

javascript - 正则表达式允许某些特殊字符 - 转义问题

javascript - 单个函数调用 chrome.runtime.sendMessage() 中的多条消息;

javascript - 构建多 View 、多用户类型的 React 应用程序

javascript - 如何使用 JQuery 显示/隐藏相似 block 内的相同 block

php - 使用 AJAX 运行 PHP 代码

jquery - 如何自动增加select2输入框的高度(多个)

excel - 编辑单元格时按下按键时是否会触发任何事件?

javascript - 如何在 Bootstrap 3 中将 font Awesome 图标置于图像之上?

javascript - 将 keydown 事件仅限于字符