2013-01-15 7 views
8

Ho questo problema interessante - Vorrei leggere i tasti premuti con javascript, ma non diretto in un campo di testo.Javascript ha letto i tasti premuti sul tablet?

Questo è semplice sui computer e ho questo funzionamento (Fintanto che la finestra è attiva, il javascript può rilevare i tasti). Tuttavia, su tablet con Android e iOS, il sistema operativo ignora i tasti premuti. Il codice javascript riceve i dati della pressione della tastiera solo se sono concentrato in un campo di testo.

C'è un modo per aggirare questo? Vorrei leggere i tasti premuti sui tablet senza doverti concentrare su un campo di testo.

+0

Provare un campo di testo nascosto? –

+0

Penso di voler stare lontano dai campi di testo: il mio obiettivo è quello di digitare e poter fare clic sui pulsanti contemporaneamente. Il campo di testo nascosto perderebbe ancora lo stato attivo dopo aver fatto clic su un pulsante. Come, un gioco di corse che usa WASD per controllare, ma ci sono anche i pulsanti per fare le cose - Vorrei continuare a usare WASD per guidare prima/durante/dopo che premo i pulsanti. – user1873476

+0

se stai provando a creare un programma grafico, stai usando la tela? se si imposta l'area della vista intera su un campo canvas, dovresti essere in grado di rilevare tutti i tasti premuti – Ryan

risposta

1

provare qualcosa di simile:

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

Da quello che ho visto usando un iPad per oltre 2 anni, e scrivendo i miei giochi basati web, sono giunto alla conclusione che l'iPad attiva la sua tastiera solo quando un campo di immissione modulo è focalizzato. Ciò significa che un utente di una pagina Web non può immettere alcun input da tastiera a meno che non sia stato focalizzato un campo di input del modulo.

Ciò significa che ciò che si sta chiedendo è una impossibilità fisica su questi dispositivi.

0

Al posto dell'evento chiave è sufficiente utilizzare l'input. Ha funzionato per me

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

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