Chrome + перехват нажатия клавишь.
Ловлю эвент
document.onkeypress = function(event){control.HandleEvent(event);} var keyCode = (event.charCode) ? event.charCode : event.keyCode; В Хроме не отлавливаются Home, End, Del, BS, стрелки. Помогите советом. |
Используйте onkeyup и проверку keyCode
|
А в чем собственно проблема keypress может кто-нибудь пояснить?
|
keypress сигнализирует о вводе символа, а не о нажатии клавиши.
|
switch (event.type) { case "click": this.HandleClick(event); break; case "keypress": this.HandleKeyPress(event); break; case "keyup": this.HandleKeyDown(event); break; } return false; события Press и up дублируются и происходит последовательный вызов. Так как в index.html конструкция вида. document.onkeypress = function(event){control.HandleEvent(event);} document.onkeydown = function(event){control.HandleEvent(event);} document.onkeyup = function(event){control.HandleEvent(event);} document.onclick = function(event){control.HandleEvent(event);} Поскажите как решить проблему? |
Разумеется они могут дублироваться, т.к. нажатие некоторых клавиш вводит символ. Плюс к этому реализация в браузерах, как правило, неаккуратная, keypress может вызываться и при нажатии функциональных клавиш.
|
И как с этим быть! Так как мне очень важно различать эти два события.
|
В каком смысле различать?
Если нужно получить вводимый символ -- keypress. Если нужно получить нажатую клавишу -- keydown/keypress. |
Часовой пояс GMT +3, время: 23:24. |