我有一个自定义 CMS,想添加一个“快捷方式菜单”,由在 300 毫秒内按两次 Ctrl 键触发。
我使用原型(prototype),所以我的出发点显然是:
Event.observe(document, 'keypress', function(event)
{ if(event.keyCode == Event.KEY_XYZ) { show_shortcuts});
我目前的方法是用当前时间(以毫秒为单位)填充一个全局变量,并检查每个按键是否发生在不到 300 毫秒前。
但也许有更优雅的解决方案?
最佳答案
这应该有效。如果没有同时按下 Alt 或 Shift 等其他键,可能会添加一些进一步的检查。希望这是不言自明的,如果不只是问,我会提供澄清。
var dblCtrlKey = 0;
Event.observe(document, 'keydown', function(event) {
if (dblCtrlKey != 0 && event.ctrlKey) {
alert("Ok double ctrl");
dblCtrlKey = 0;
} else {
dblCtrlKey = setTimeout('dblCtrlKey = 0;', 300);
}
});
https://jsfiddle.net/3tc26g7x/
关于javascript - 检测JS中的双Ctrl键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1707650/