我正在寻找一个现有的Javascript库,甚至更好的是一个jQuery插件,它检测一个键组合并输出相应的字符串(例如,“ctrl + shift + f”)。这是为了允许用户为Google Chrome插件配置关键组合。 BetterTouchTool(http://www.boastr.de/)的首选项行为就是我所说的一个很好的例子。有没有人遇到这样的事情?
答案 0 :(得分:0)
我认为这种事情可能会有所帮助:
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 }
我希望它会有用
答案 1 :(得分:0)
$(document).keypress(function(e) {
alert(
(e.ctrlKey ? 'ctrl+' : '') +
(e.altKey ? 'alt+' : '') +
(e.shiftKey ? 'shift+' : '') +
String.fromCharCode(e.which).toLowerCase()
);
});
这将注册密钥;不知道如何阻止ctrl / alt键被解释。
答案 2 :(得分:0)
我忘记了我甚至问过这个问题!好几个月之后,我自己写了一个插件,确实这样做了=)