Ловим событие onkeydown, затем обращаемся к полям обьекта-события: altKey, ctrlKey, shiftKey или metaKey под маком. С другими событиями можешь не парится, возможно действие по дефолту не отключишь. Пример:
| Код | /* * Важно: в разных браузерах по разному работает обработка событий ибо W3C стандарт * пришёл когда было поздно. Естественно что все методы не совместимы друг с другом.... */ window.onkeypress=hotKeyHandler; //для Оперы и Мозиллы if(!window.opera) document.onkeydown=hotKeyHandler; //для ИЕ, Опера тоже среагирует //в ней отрубание события не работает, так что оно отработает два раза, что нам не нужно //также действие по дефолту не отрубается если событие пойманно не на window // returnValue не поможет, одним словом Опера... function hotKeyHandler(e) { if(window.event) { //для ИЕ подобных if(window.event.ctrlKey&&(window.event.keyCode=="B".charCodeAt(0)||window.event.keyCode=="b".charCodeAt(0))) { alert("OK IE"); //делаем что нибудь полезное window.event.cancelBubble=true; //опера сие действие игнорирует... window.event.returnValue=false; return false; } } else if(e) { //для мозиллы //в мозилле keyCode возвращает 0, об этом оффициально заявленно, хотя нам от этого не легче //другое свойство charCode даёт что нужно, но нас предупреждают что оно тоже может дать 0 if(e.ctrlKey&&(e.charCode=="B".charCodeAt(0)||e.charCode=="b".charCodeAt(0))) { alert("OK"); //полезное действие e.preventDefault(); //остановим событие e.stopPropagation(); //отрубим действие по дефолту return false; //ну и по старинке } } return true; } |
Код ловит комбинацию ctrl+B и показывает alert. |