2010-12-15 2 views
12

Je crée un site qui, une fois la page chargée, doit écouter une chaîne de clavier particulière.jQuery: Comment écouter les entrées générales du clavier?

L'événement qui m'intéresse est en fait un scanner analysant un objet, mais il présente au site comme une entrée au clavier, de la forme ~XXX~.

Je vois que jQuery a un événement keypress() que vous pouvez lier à un objet particulier.

Mais comment puis-je écouter la saisie au clavier générale, après $(document).ready?

+0

consultez l'exemple, il est dans les docs: http://api.jquery.com/keypress/ – Mark

Répondre

17

Essayez ceci:

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

Voir en action sur jsFiddle

+0

N'a pas fonctionné pour moi dans IE 8. (Fonctionne dans FireFox) – ClearCloud8

1

Je l'ai déjà fait. Il y a beaucoup d'autres choses à s'inquiéter à propos de la façon de gérer les événements keypress.

Votre scanner envoie probablement l'entrée enveloppée par un caractère de début et de fin. Je créer un objet ScanReader qui attache à l'événement keypress. Une fois qu'il détecte le caractère de départ, il commence à accumuler les presses jusqu'à ce que le caractère de fin soit détecté. Pour éviter toute confusion avec la saisie de l'utilisateur, les touches doivent être relativement proches (dans le temps) l'une de l'autre, vous devez le tester et voir quel est le bon nombre de ms entre les touches. Les typeurs rapides peuvent taper aussi vite que 50ms entre les touches.

Questions connexes