События при нажатии на клавиши
1-ый способ
Выполнение кода после того, как клавиша была нажата и отпущена, происходит через событие onkeydown
. Переданный код клавиши доступен через свойство keyCode
.
document.onkeydown = function(e) { if (e.keyCode == 27) { alert('ESC pressed'); } }
В коде выше выполняется функция при нажатии на клавишу ESC.
Код клавиши ESC — 27. Но при работе с кодом, можно забыть, какой клавише соответствует число 27. Поэтому рекомендуется назначить код клавиши в переменную.
var KEY_ESC = 27; document.onkeydown = function(e) { if (e.keyCode == KEY_ESC) { alert('ESC pressed'); } }
Можно узнать код любого символа через метод charCodeAt()
. Этим самым, можно отслеживать событие нажатия клавиш, не зная их код.
document.onkeydown = function(e) { if (e.keyCode == 'S'.charCodeAt()) { alert('S pressed'); } }
Пример кода: http://jsfiddle.net/hLu7r/1/
Событие при нажатии двух клавиш:
document.onkeydown = function(e) { if (e.shiftKey && e.keyCode == "S".charCodeAt()) { alert('Shift + S'); } } // Также есть следующие команды: // e.altKey // e.ctrlKey
Пример кода: jsfiddle.net/hLu7r/2/
2-ой способ: плагин
Также можно воспользоваться библиотекой Handling Keyboard Shortcuts.
shortcut.add("Ctrl+Shift+Z", function() { alert("Z pressed"); });
Пример кода: http://jsfiddle.net/83ugp/
Страница библиотеки: openjs.com/scripts/events/keyboard_shortcuts/
Авторизуйтесь, чтобы добавлять комментарии