Обработка ключей JavaScript и совместимость с браузером

Я работаю над обработкой клавиш в Javascript. Я провел некоторое исследование и хотел бы знать, правильно ли я понимаю работу с ключами.

Событие KeyDown / KeyUp События нажатия и подъема ключа поддерживаются IE7 + и Firefox 3.5+ Я не проверял более ранние версии браузеров, но думаю, что они тоже поддерживают эти события.

Можно ли сказать, что каждая клавиша на клавиатуре всегда будет иметь код клавиши.

CharCode

Значение CharCode доступно при нажатии клавиши. Большинство клавиш будут иметь коды символов, которые представляют фактическое значение. С некоторыми ключами не будет ассоциироваться кодировка. Например. backspace, delete, клавиши со стрелками.

Правильно ли я говорю, что при нажатии клавиши код символа будет таким же, как код клавиши?

Порядок событий

  • KeyDown
  • Нажатие клавиши
  • KeyUp

Отличается ли этот порядок от браузера в браузер? Например, у меня две функции. Первый связан с событием KeyDown, второй - с событием KeyPress. Вызов события KeyPress означает, что событие KeyDown также будет вызываться, когда я хочу, чтобы работало только одно из этих событий.

Наконец, я подумал об использовании различных процедур обработки ключей в зависимости от версии браузера. Например:

  • Проверить версию браузера
  • Получить процедуру обработки ключей в зависимости от версии браузера

Это введет дополнительный код, но должно упростить обслуживание. Кроме того, в будущем, когда я захочу обеспечить поддержку другого браузера, я могу просто добавить еще одну процедуру, и это не повлияет на существующую процедуру обработки символов.

Пока я читал http://www.quirksmode.org

10
задан Brian Tompsett - 汤莱恩 22 September 2019 в 08:56
поделиться

2 ответа

Смотрите следующие страницы, они ответят на ваши вопросы:

onkeydown event, onkeypress event, keyCode property, charCode property, свойство

7
ответ дан 3 December 2019 в 23:48
поделиться

Следующая статья Яна Вольтера никогда не подводила меня и является лучшим ресурсом по ключевым событиям браузера, который я видел: http://unixpapa.com/js/key.html. Она отвечает на все поставленные вами вопросы.

Следует подчеркнуть, что при тщательном использовании имеющихся в вашем распоряжении свойств ключевых событий вам почти наверняка никогда не понадобится искать конкретный браузер в вашем коде обработки ключевых событий.

6
ответ дан 3 December 2019 в 23:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: