2012-01-28 9 views
9

Stavo pensando di fare qualcosa con la jQuery.browser ma questo solo i ritorni che browser che stai dentro e se un webkit ecc eccIn javascript 'Se cellulare'

così ho praticamente voglio spegnere alcuni file js da caricare anche se sei su un dispositivo mobile?

Suppongo che tu possa farlo ma come?

+1

non una soluzione JavaScript, ma ho usato questo per un bel po ': http: // detectmobilebrowsers. mobi/ – Brad

+2

Dovresti farlo sul server, non sul client. – epascarello

+0

sono d'accordo. ho già questo posto. Rilevare ciò che il browser mi dice che è. Mi piacerebbe ricontrollare;) –

risposta

27

Credo this answer è meglio perché non dipende larghezza dello schermo:

if(/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent)) { 
    // some code.. 
} 

So che ora hai una dipendenza dal browser del brand, ma questo è un po 'più mantenibile che controlla le dimensioni dello schermo.

+0

Aggiornato e aggiunto come risposta corretta. Anche questa è una soluzione migliore per ora. Mi piacerebbe comunque qualcosa di diverso dall'utente che annusa. –

+0

Se si sta andando a percorrere questa strada, è possibile farlo lato server, l'agente utente è disponibile a differenza della larghezza dello schermo (a meno che non sia reso disponibile). – Jasper

+1

heh, giù votando la domanda diaspro? ekk bit infantile perché ti cambio come risposta corretta: D Il problema che ho con le larghezze ora è che i dispositivi di giorni riportano larghezze a velocità molto diverse. Anche quando dovrebbe essere una cosa che dà a una larghezza diversa –

14

È possibile utilizzare le dimensioni dello schermo, in questo modo si carica la vostra piccola interfaccia utente per piccoli schermi:

if ($(window).width() < 480 || $(window).height() < 480) { 
    //small screen, load other JS files 
    $.getScript('/js/script.js', function() { 
     //the script has been added to the DOM, you can now use it's code 
    }); 
} 

Documenti per $.getScript(): http://api.jquery.com/jquery.getscript

+1

La risoluzione dello schermo non è appropriata per rilevare la capacità del dispositivo mobile. Un sacco di dispositivi con risoluzioni schermo alto/basso hanno capacità diverse, sia sul cellulare che sulla scrivania. Inoltre, non penso che stia chiedendo informazioni sull'interfaccia utente, ma su qualche altro script. – Brad

+0

Decisamente interessante. Attualmente utilizzano i media quires, che hanno i loro problemi. Come Brad ha detto che ci sono limitazioni con i browser mobili, mentono e danno dimensioni stupide. Lo farei ridimensionare sullo schermo, basta controllare. Mi chiedo quanto sarà avido comunque. –

+0

Le dimensioni dello schermo fornite per i dispositivi mobili possono essere strampalate, ma puoi entrare con loro nel campo da baseball. – Jasper

0

Il problema con i dispositivi mobili contro i browser tradizionale è che .. bene, qual è la differenza?

Ci sono desktop là fuori con connessioni più lente rispetto al telefono cellulare. Ci sono telefoni cellulari con risoluzioni più elevate con i desktop. E poi, ovviamente, è vero anche il contrario.

Idealmente, dovresti considerare di rendere il tuo sito in modo che funzioni bene su entrambi. Mentre in pratica, questo è spesso difficile, penso che in questi giorni troverai i tuoi sforzi che valgono la pena. I tuoi utenti ti ameranno anche per questo.

Se si sente ancora la necessità di tentare questa ... soprattutto in JavaScript ... vedi questo post: Mobile detection

+0

Sì, penso che sia per questo che ci sto guardando. Non ho bisogno di caricare grandi sistemi di commenti e le mie fantasiose animazioni per il mobile. preferirei che non usassero le mie richieste http, se possibile. –

2

So che questa è una risposta molto tarda ed è probabile che abbia risolto il problema. Ma in ogni modo, qui è quello che io uso per tutti i miei progetti:

window.isMobile = /iphone|ipod|ipad|android|blackberry|opera mini|opera mobi|skyfire|maemo|windows phone|palm|iemobile|symbian|symbianos|fennec/i.test(navigator.userAgent.toLowerCase()); 
0

$(window).resize(function(){ /*Bind an event handler to the "resize"*/ 
 
    if ($(window).width() < 480 || $(window).height() < 480) { 
 
     //what you have to do here 
 
    } 
 
})

+1

per favore aggiungi le spiegazioni a questo codice – Ibo