Получение персонажа из события keyup - PullRequest
4 голосов
/ 02 октября 2011

Я обрабатываю событие keyup, и мне нужно получить набираемый символ. Когда я набираю точку, data.keyCode равен 190, но когда я пытаюсь преобразовать ее с помощью String.fromCharCode (190), я получаю символ «¾».

Эта ссылка говорит мне, 190 - символ периода. Тот говорит, что у меня нет шансов для кросс-браузерной обработки нажатия клавиш. Итак, как мне справиться с этим правильно?

1 Ответ

5 голосов
/ 02 октября 2011

Я обрабатываю событие keyup, и мне нужно получить набираемый символ.

Это ненадежно доступно.На keyup вы получаете только keyCode, а не charCode.

(Если подумать, это имеет смысл: charCode связан с символом, набираемым при нажатии клавиши, чтоможет быть смещен с помощью клавиши-модификатора и, таким образом, генерирует другой символ по сравнению с базовым ключом, на keyup и keydown, поскольку эти события не сразу связаны с набираемым новым символом, не существует известного символа для генерации.)

Так что, если вы делаете что-то, что зависит от того, напечатан ли . символ , вам нужно будет использовать событие keypress.

Если вы хотите знать, когда будет выпущена абстрактная клавиша , которая помечена как . / > на некоторых распространенных раскладках клавиатуры, вы можете сделать это с помощью keyup, используя keyCode, указанный нассылка unixpapa.Использование keyCode, как это, обычно используется для игр и других функций, где важна фактическая позиция ключа, а не символ, который она генерирует при вводе.поэтому вам нужно проверить его на наличие всех возможных значений, перечисленных выше, и вы не можете точно определить разницу между периодом основной клавиатуры, ключом numpad period / delete и основным ключом delete.

...