2013-01-15 11 views
8

Mam ten interesujący problem - chciałabym czytać naciśnięcia klawiszy za pomocą javascript, ale nie skierować ich do pola tekstowego.Czytanie na klawiaturze czytają naciśnięcia klawiszy?

To jest proste na komputerach i mam to działa (tak długo, jak okno ma fokus, javascript może wykrywać naciśnięcia klawiszy). Jednak na tabletach z systemem Android i iOS system operacyjny ignoruje naciśnięcia klawiszy. Kod javascript otrzymuje tylko dane z naciśnięcia klawisza, jeśli koncentruję się w polu tekstowym.

Czy jest jakiś sposób obejścia tego? Chciałbym przeczytać klawisze na tabletach bez konieczności skupiania się na polu tekstowym.

+0

Spróbuj ukryte pole tekstowe? –

+0

Myślę, że chcę trzymać się z dala od pól tekstowych - moim celem jest pisanie na klawiaturze i możliwość klikania przycisków w tym samym czasie. Ukryte pole tekstowe straciłoby ostrość po kliknięciu przycisku. Podobnie jak gra wyścigowa, która używa WASD do sterowania, ale są też przyciski do robienia rzeczy - chciałbym nadal używać WASD do jazdy przed/w trakcie/po naciśnięciu przycisków. – user1873476

+0

jeśli próbujesz utworzyć program graficzny, czy używasz płótna? jeśli sprawisz, że cały obszar widoku będzie obszarem roboczym, powinieneś być w stanie wykryć wszystkie naciśnięcia klawiszy – Ryan

Odpowiedz

1

Spróbuj czegoś takiego:

$('input,textarea').live("keypress", function (e) { 
    //do any action here 
}); 
1

Z tego co widziałem za pomocą iPada od ponad 2 lat i pisania własnych gier opartych na sieci Web, doszedłem do wniosku, że iPad będzie aktywuj klawiaturę tylko wtedy, gdy pole wprowadzania formularza jest ustawione na. Oznacza to, że użytkownik strony internetowej nie może wprowadzić żadnego wejścia klawiatury, chyba że pole wprowadzania formularza zostało ustawione.

Co oznacza, że ​​o to pyta się: niemożliwa fizycznie na tych urządzeniach.

0

Zamiast wydarzenia kluczowego można po prostu użyć danych wejściowych. Pracował dla mnie.

var userList = new List("MyListList", options); 

$(".main-search").on("input", function() { 
      userList.search($(".main-search").val()); 
     }); 
Powiązane problemy