Фактический ключ, назначенный javascript keyCode - PullRequest
0 голосов
/ 25 сентября 2011

Я настроил прослушиватель событий:

editor.addEventListener('keydown', function(e) {
    if (e.shiftKey === false) {
        alert(String.charFromCode(e.keyCode).toLowerCase());
    }
    else {
        alert(String.charFromCode(e.keyCode));
    }
}, false);

Когда пользователь нажимает «2» вместе со смещением, как мне узнать, должен ли я выводить (@) или (")? Отображение символов каждого пользователя различается в зависимости от локали.

Ответы [ 2 ]

1 голос
/ 25 сентября 2011

Вместо этого используйте событие keypress.Он надежно (за исключением нескольких крайних случаев) обнаружит введенный символ.

Есть несколько странностей браузера (например, некоторые непечатаемые ключи, генерирующие события keypress с кодами ключей в свойстве which внекоторые браузеры), которые мешают следующему примеру быть на 100% совершенным, о чем вы можете прочитать более подробно на полной странице о ключевых событиях JavaScript .

Пример:

editor.addEventListener('keypress',
function(e)
{
    var charCode = (typeof e.which == "number") ? e.which : e.keyCode;
    alert( String.charFromCode(charCode) );
},
false);
1 голос
/ 25 сентября 2011

Краткий ответ: вы действительно не можете. Используйте keypress или keyup слушатель и сравните старое (текстовое поле, я полагаю?) Значение с новым, чтобы увидеть, что на самом деле произошло.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...