7

Я работаю над обработкой ключей в скрипте java. Я провел некоторое исследование, и я хотел бы знать, правильно ли я понимаю ключевые манипуляции.Обработка JavaScript-ключа и совместимость с браузером

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

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

CharCode

значение CharCode доступно на keypress.Majority ключей будет иметь charcodes, которые представляют реальную ценность. Некоторые ключи не будут ассоциироваться с ними. Например. backspace, delete, клавиши со стрелками.

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

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

  • KeyDown
  • KeyPress
  • KeyUp

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

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

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

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

До сих пор я читал http://www.quirksmode.org

ответ

6

на следующих страницах, они будут отвечать на ваши quetions:

onkeydown event, onkeypress event, keyCode property, charCode property, which property

+0

Thats great, спасибо. Перейдя через встроенные функции, проверьте, удерживаются ли shift/ctr/alt и т. Д. В момент, когда происходит событие. Значит, я могу избавиться от нескольких строк кода. – 2010-08-13 13:05:36

5

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

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

+0

Красивая статья, она даже держится сегодня? –

+0

@SurajJain: Да, хотя современные браузеры поддерживают более новые, более качественные свойства, такие как ['key'] (https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key). Я сомневаюсь, что старые свойства уйдут в ближайшее время, хотя они официально устарели. –

0

2015 обновление:

According to MDNevent.charCode, event.keyCode и event.which все были устаревшими. event.key - это новейший и самый горячий способ проверить, какая клавиша нажата.

Он выглядит прост в использовании, но поддержка браузера не идеальна. Теперь у нас есть частичная поддержка в Chrome 45+ (не из AFAIK), Firefox 23+ и IE 9+.

+1

https://xkcd.com/927/ – aiguofer

Смежные вопросы