2011-12-14 18 views
13

Użyłem screen.width, aby uzyskać szerokość przeglądarki. to działało dobrze z iphone safari, ale nie działało w telefonie z Androidem (pokazało 800 szerokości dla przeglądarki Android).Javascript do wykrywania szerokości ekranu przeglądarki mobilnej?

Czy istnieje jakiś zgodny sposób uzyskania szerokości ekranu. Nie chcę używać UserAgent do sprawdzania, czy jest to przeglądarka mobilna. chciałbym użyć do tego javascript, a logika powinna zawierać szerokość ekranu.

Odpowiedz

3

Możesz spróbować tego URL detect screen size and apply a CSS style

lub

<script type="text/javascript"> 

    function getWidth() 
    { 
    xWidth = null; 
    if(window.screen != null) 
     xWidth = window.screen.availWidth; 

    if(window.innerWidth != null) 
     xWidth = window.innerWidth; 

    if(document.body != null) 
     xWidth = document.body.clientWidth; 

    return xWidth; 
    } 
function getHeight() { 
    xHeight = null; 
    if(window.screen != null) 
    xHeight = window.screen.availHeight; 

    if(window.innerHeight != null) 
    xHeight = window.innerHeight; 

    if(document.body != null) 
    xHeight = document.body.clientHeight; 

    return xHeight; 
} 

</script> 


screen.height   shows the height of the screen 
screen.width   shows the width of the screen 
screen.availHeight shows height but removes the interface height like taskbar, and browser menu etc. 
screen.availWidth same as above,instead gives available width 
4

To wiem problem - patrz here

Kiedy pierwsza strona ładuje screen.width i screen.height są błędne. Spróbuj timeout tak:

setTimeout(CheckResolution, 300); 

Gdzie CheckResolution jest twoja funkcja.

0

Uważam, że za pomocą window.outerWidth podaje się poprawną wartość. Przetestowano to przy użyciu emulatorów Android BrowserStack.

+0

To właśnie zwraca szerokość całego okna łącznie z chromem i wszystko. – malthoff

1

Dla zainteresowanych w uzyskaniu wartości szerokości przeglądarki, przetestowałem kilka opcji:

Używam bootstrap 3 a jedynym rozwiązaniem dopasowując Bootstrap 3 punkty przerwania zarówno z IE i Chrome została:

window.innerWidth 

Oto wyniki z 1200 pikseli z okna:

Chrome

$(window).width(): 1183 
$(document).width():1183 
screen.width: 1536 
$(window).innerWidth():1183 
$(document).innerWidth():1183 
window.innerWidth: 1200 
$(document).outerWidth():1183 
window.outerWidth: 1216 
document.documentElement.clientWidth: 1183 

Internet Explorer 10

$(window).width(): 1200 
$(document).width():1200 
screen.width: 1536 
$(window).innerWidth():1200 
$(document).innerWidth():1200 
window.innerWidth: 1200 
$(document).outerWidth():1200 
window.outerWidth: 1214 
document.documentElement.clientWidth: 1200 
Powiązane problemy