Manipulação de chave JavaScript e compatibilidade do navegador

Estou trabalhando no manuseio de chaves no script java. Eu fiz algumas pesquisas e gostaria de saber se tenho um entendimento correto do manuseio de chaves.

Evento KeyDown / KeyUp Os eventos key down e key up são suportados pelo IE7 + e Firefox 3.5+. Não verifiquei as versões anteriores dos navegadores, mas acho que eles também suportam esses eventos.

É correto dizer que cada tecla do teclado sempre terá um código de tecla.

CharCode

O valor CharCode está disponível no pressionamento de tecla. A maioria das chaves terá os códigos de caracteres que representam o valor real. Algumas chaves não terão um código associado a elas. Por exemplo. backspace, delete, teclas de seta.

Estou correto em dizer que, ao pressionar a tecla, o código será o mesmo que o código?

Ordem dos eventos

KeyDownPressione o botãoKeyUp

Esta ordem difere de navegador para navegador? Por exemplo, eu tenho duas funções. O primeiro é vinculado ao evento KeyDown, o segundo é vinculado ao evento KeyPress. Chamar um evento KeyPress significa que o evento KeyDown também será chamado quando eu desejar que apenas um desses eventos funcione.

Finalmente, estou pensando em usar diferentes rotinas de manipulação de teclas, dependendo do navegador da versão. Por exemplo:

Verifique a versão do navegadorObtenha rotina de manipulação de teclas, dependendo da versão do navegador

Isso introduzirá código adicional, mas deverá simplificar a manutenção. Além disso, no futuro, quando desejar fornecer suporte para um navegador diferente, posso simplesmente adicionar outra rotina e isso não afetará a rotina existente de manipulação de caracteres.

Até agora eu tenho lidohttp://www.quirksmode.org

questionAnswers(3)

yourAnswerToTheQuestion