javascript - вычислить «истинный» ключевой код - PullRequest
0 голосов
/ 16 февраля 2012

Когда я нажимаю клавишу на своей клавиатуре, я могу получить код клавиши этой клавиши, используя e.keyCode. Но полученный код клавиши не учитывает нажатые клавиши alt / ctrl / shift, которые изменяют код клавиши.

К счастью, я получаю свойства shiftKey / altKey / ctrlKey с событием, поэтому я могу вычислить «истинный» код ключа.

Но я не знаю, как правильно рассчитать это. Где я могу прочитать об этом? Это так же просто, как вычитать 32, если нажата клавиша shift и т. Д., Или есть много исключений?

Ответы [ 2 ]

1 голос
/ 16 февраля 2012

Вы ошибаетесь, коды клавиш не меняются, поскольку они относятся к определенной клавише на клавиатуре.Независимо от клавиш-модификаторов эти коды остаются неизменными (и даже сами клавиши-модификаторы имеют код клавиши).

Захватывает событие нажатие , которое позволит вам получить доступ к кодам символов.

el.onkeypress = function (evt) {
    alert( (evt || window.event).charCode );
}
0 голосов
/ 16 февраля 2012

Я не понимаю, почему вы хотите рассчитать «истинные» коды клавиш. Если вы делаете ярлыки для своего сайта / приложения / чего бы то ни было, вы можете просто проверить, была ли нажата кнопка (например) S и нажата ли Ctrl одновременно.

Истинные ключевые коды сами по себе не имеют никакого значения (если вам это не нужно для чего-то конкретного).

Кстати, вы должны рассмотреть возможность использования jQuery для вашего проекта. Он нормализует коды клавиш, так что вы не будете вести себя странно в любом браузере (Windows и OS). Я думаю, это важнее.

...