2010-12-15 11 views
12

Estoy construyendo un sitio que después de cargar la página, necesita escuchar una cadena de teclado en particular.jQuery: ¿Cómo puedo escuchar la entrada general del teclado?

El evento en el que estoy interesado es en realidad un escáner que escanea un objeto, pero se presenta al sitio como entrada de teclado, del formulario ~XXX~.

Veo que jQuery tiene un evento keypress() que puede vincular a un objeto en particular.

Pero, ¿cómo puedo escuchar la entrada general del teclado, después de $(document).ready?

+0

echa un vistazo al ejemplo, está en los documentos: http://api.jquery.com/keypress/ – Mark

Respuesta

17

Prueba esto:

$(function() { 
    $(window).keypress(function(e) { 
     var key = e.which; 
     //do stuff with "key" here... 
    }); 
}); 

verlo en acción en jsFiddle

+0

No funcionó para mí en IE 8. (Funciona en FireFox) – ClearCloud8

1

que he hecho esto antes. Hay muchas otras cosas de las que preocuparse además de cómo manejar los eventos de pulsación de tecla.

Su escáner probablemente envíe la entrada envuelta por un inicio y un final de caracteres. Crearía un objeto ScanReader que se adjuntará al evento keypress. Una vez que detecta el carácter de inicio, comienza a acumular las presiones hasta que se detecta el carácter final.

Para evitar que se confunda con el usuario al escribir, las pulsaciones de teclas deben estar relativamente cerca (en el tiempo) entre sí, debe probar y ver qué cantidad de ms entre las pulsaciones de tecla. Los tipógrafos rápidos pueden escribir tan rápido como 50 ms entre pulsaciones de teclas.

Cuestiones relacionadas