2014-06-16 16 views
5

Buduję witrynę, na której globalnie wiążę pewne klucze do skrótów przy użyciu zdarzenia keyup. Na przykład, jeśli ktoś naciśnie klawisz A, zostanie otwarte menu.Jak można wykryć, czy użytkownik ma klawiaturę przez JavaScript?

Nie chcę wiązać tych wyzwalaczy na urządzeniach mobilnych (takich jak telefony i tablety). Jednak istnieje wiele osób, które używają klawiatur z tabletami. Jak wykryłbym, czy wejście klawiatury istnieje przez JavaScript? Wiem, że potrafię wykrywać urządzenia dotykowe oparte na tym, że istnieje touchstart, ale to nie działa dla osób, które są na tabletach i mają podłączone klawiatury. Chcę tylko wiązać zdarzenia keyup, jeśli jest obecna klawiatura. Jaki jest najlepszy sposób na zrobienie tego?

Uwaga: Wiem, że to niezły ubaw, ale chciałbym to zrobić, jeśli to możliwe.

Z góry dziękuję!

+1

Dlaczego nie powiążesz 'keyup' we wszystkich przypadkach ... jeśli użytkownik nie ma klawiatury, nie zrobi nic. – Steve

+0

Po prostu nie chciałem wiązać niepotrzebnych zdarzeń. Czy to ma duże znaczenie, czy nie jest to nic wielkiego? – srisonti

+5

Jeśli jest to tylko jeden program obsługi wywołań, to absolutnie nic wielkiego. Kod, który napiszesz, aby NIE zawierał handler'a, prawdopodobnie byłby większą transakcją. – Steve

Odpowiedz

0

Zawsze można dołączyć procedurę obsługi zdarzeń typu catch-all do obiektu dokumentu, który leniwie dołącza procedury obsługi zdarzeń po naciśnięciu dowolnego klawisza.

Powiązane problemy