Я имею пользовательский CMS и хотел бы добавить "меню ярлыков", инициированное нажатием клавиши Ctrl дважды в, скажем, 300 миллисекундах. Я использую прототип, таким образом, моя начальная точка, очевидно:
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.keyCode == 17) {
alert("Ok double ctrl");
} else {
dblCtrlKey = setTimeout('dblCtrlKey = 0;', 300);
}
});