2012-08-10 5 views
5

Ho creato uno script in cui sono in grado di rilevare il browser mobile e quando è attivo la funzione JS getwidth e reindirizza il visitatore a un determinato URL su la base della larghezza dello schermo del suo dispositivo. Ho usato metodo js base del rilevamento cioè screen.width per rilevare larghezza dello schermoProblema di larghezza dello schermo quando si utilizzano diversi browser su dispositivi portatili/intelligenti

Il problema sto affrontando è che la larghezza dello schermo differente sia tornare in differenti browsers.Like Ho una tavoletta (Android 4.0.3) il cui schermo effettiva larghezza è 800 PX e quando eseguo il mio script su di esso dal browser predefinito restituisce una larghezza dello schermo precisa 800px ma quando lo apro con browser diversi restituiscono larghezze diverse come UC Browser restituisce 740 PX (ISSUE 2: also when onload function i tried to return screen width on UC browser then it returns screen width as 0px and after page load when i call the same function again then it returns width=740px), quando eseguo script su Opera Mini restituisce la larghezza come 441 PX.

Gentilmente fammi sapere qual è il modo più efficace per rilevare la larghezza dello schermo di dispositivi portatili/intelligenti. Quindi posso fare il reindirizzamento perfettamente sulla base della larghezza dello schermo.

URL TEST: http://radiations3.aiksite.com/home.html

Grazie,

risposta

8

Hmm, suona per me come non si deve usare Javascript, ma piuttosto usare i CSS. Hai esaminato media queries? Questo è il modo più cross-browser per rilevare la larghezza di uno schermo e quindi offrire uno stile diverso di conseguenza.

Se non stai cercando di cambiare gli stili, ma reindirizzare come dici tu (se è necessario), quindi suggerirei il seguente codice (per conto di Andy Langton):

var w=window,d=document,e=d.documentElement,g=d.getElementsByTagName('body')[0],x=w.innerWidth||e.clientWidth||g.clientWidth,y=w.innerHeight||e.clientHeight||g.clientHeight; 

Questa è la abbreviazione che creerà due variabili, x e , che sono rispettivamente larghezza e altezza. Forse questo è più simile a quello che stai cercando, ma prima ti suggerisco di controllare le query multimediali e assicurarti che ciò che stai cercando di fare non possa essere fatto con i CSS. Non c'è alcuna garanzia che Javascript sia abilitato in qualsiasi browser.

+1

+1 per le query sui media! Molti dispositivi mobili non utilizzano JavaScript (o sono disabilitati per impostazione predefinita). Con il numero di varianti di dispositivi esistenti oggi, la maggior parte degli sviluppatori considera la pratica scorretta per provare e soddisfare specifiche piattaforme con lo sniffing JS. Potrebbero esserci 100 dimensioni dello schermo là fuori, chi lo sa? Piuttosto, prova a cercare "responsive web design" se sei interessato a come realizzare un sito mobile compatibile senza JavaScript (o almeno non dipende dal fatto che JavaScript sia abilitato). L'idea è di regolare la tua pagina utilizzando le query multimediali CSS per adattarsi a qualsiasi dimensione dello schermo. – BenSwayne

+0

@soft genic: questo ha risposto alla tua domanda? – cereallarceny

+0

@cereallarceny Ho usato la query multimediale e stanno anche ottenendo la stessa dimensione dello schermo che viene restituita da javascripting, che è stato errato in quanto dipendeva dalle dimensioni del browser e non dalle dimensioni effettive dello schermo. –

1

Hai provato che l'utilizzo di jQuery e

$(window).width(); 
$(window).height(); 

non ho mai avuto alcun problema con questi.

Problemi correlati