2010-12-15 15 views
12

Buduję witrynę, która po wczytaniu strony musi nasłuchiwać określonego ciągu znaków klawiatury.jQuery: Jak mogę odsłuchać ogólne wejście klawiatury?

Wydarzenie, które mnie interesuje, to skaner skanujący obiekt, ale prezentowany na stronie jako wejście klawiatury, w postaci ~XXX~.

Widzę, że jQuery ma zdarzenie keypress(), które można powiązać z określonym obiektem.

Ale jak mogę odsłuchać ogólne wejście klawiatury po $(document).ready?

+0

sprawdź przykład, jest w dokumentach: http://api.jquery.com/keypress/ – Mark

Odpowiedz

17

Spróbuj tego:

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

Zobacz go w akcji na jsFiddle

+0

Nie działa dla mnie w IE 8. (Działa w FireFox) – ClearCloud8

1

Robiłem to już wcześniej. Jest wiele innych rzeczy, o które trzeba się martwić, oprócz tego, jak radzić sobie z wydarzeniami typu keypress.

Twój skaner prawdopodobnie wyśle ​​dane wejściowe opakowane za pomocą znaków początkowych i końcowych. Chciałbym utworzyć obiekt ScanReader, który dołącza do zdarzenia keypress. Po wykryciu znaku początkowego zaczyna gromadzić dane, aż do wykrycia znaku końca.

Aby zapobiec dezorientacji użytkownika podczas pisania na klawiaturze, klawisze powinny być względnie blisko siebie (w czasie), należy je przetestować i sprawdzić, jaka jest duża liczba ms między naciśnięciami klawiszy. Szybkie czcionki mogą wpisywać się tak szybko, jak 50 ms pomiędzy naciśnięciami klawiszy.

Powiązane problemy