2010-12-15 10 views
12

Ich baue eine Website, die nach dem Laden der Seite auf eine bestimmte Tastaturzeichenfolge warten muss.jQuery: Wie höre ich nach allgemeinen Tastatureingaben?

Das Ereignis, das mich interessiert, ist tatsächlich ein Scanner, der ein Objekt scannt, aber es stellt sich der Website als Tastatureingabe des Formulars ~XXX~.

Ich sehe jQuery hat ein keypress() Ereignis, das Sie an ein bestimmtes Objekt binden können.

Aber wie kann ich für allgemeine Tastatureingabe hören, nach $(document).ready?

+0

Schauen Sie sich das Beispiel an, es ist in der Dokumentation: http://api.jquery.com/keypress/ – Mark

Antwort

17

Versuchen Sie folgendes:

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

Sehen sie in Aktion auf jsFiddle

+0

Funktionierte nicht für mich in IE 8. (Funktioniert in FireFox) – ClearCloud8

1

ich diese vorher getan haben. Es gibt noch viele andere Dinge, über die Sie sich Gedanken machen müssen, wie Sie mit Tastenanschlägen umgehen müssen.

Ihr Scanner sendet wahrscheinlich die Eingabe von Anfangs- und Endzeichen umgeben. Ich würde ein ScanReader-Objekt erstellen, das an das keypress-Ereignis angehängt wird. Sobald das Startzeichen erkannt wird, beginnt es mit dem Pressen, bis das Endezeichen erkannt wird.

Um zu vermeiden, dass es mit der Eingabe durch den Benutzer verwechselt wird, sollten die Tastenanschläge relativ nah (zeitlich) zueinander sein, Sie müssen es testen und sehen, wie viel ms zwischen den Tasten drücken. Schnelldrucker können zwischen den Tastendrücken so schnell wie 50 ms tippen.

Verwandte Themen