Есть ли последовательный способ определения ширины экрана и виртуального окна просмотра для мобильных устройств с помощью Javascript? Мои целевые платформы - мобильный Safari и стандартный браузер Android, но я также тестирование с другими браузерами на Android.
Я пробовал с screen.width
, window.innerWidth
, document.getElementByTagName ("body") [0] .clientWidth
и jQuery $ (window) .width ()
.
Mobile Safari (из ios 3.1.3 (7E18), оригинальный iPod touch) показывает полезные значения, но стандартный Android браузер (Android 2.3.7) этого не делает.
В идеале, я думаю, screen.width должен отображать фактическое разрешение экрана в пикселях: 320 пикселей на iPod Touch и 480 пикселей на Samsung Galaxy S2. Основываясь на том, что я читал, одно из других чисел должно показывать ширину области просмотра макета , которая должна составлять 980 пикселей на iTouch и 800 пикселей на Samsung Galaxy S2.
.
.
<body>
<h1>screen.width: <span id="screen_width"></span></h1>
<h1>window.innerwidth: <span id="window_innerwidth"></span></h1>
<h1>clientWidth: <span id="clientwidth"></span></h1>
<h1>jQuery width: <span id="jquery_width"></span></h1>
</body>
<script type="text/javascript" src="jquery/jquery-1.7.1.min.js"></script>
<script type="text/javascript">
window.onload = function(){
var swidth = screen.width;
var wiwidth = window.innerWidth;
var cwidth = document.getElementsByTagName("body")[0].clientWidth;
var jwidth = $(window).width();
document.getElementById("screen_width").innerHTML = swidth;
document.getElementById("window_innerwidth").innerHTML = wiwidth;
document.getElementById("clientwidth").innerHTML = cwidth;
document.getElementById("jquery_width").innerHTML = jwidth;
}
</script>
.
.
iOS Safari :
screen.width: 320
window.innerwidth: 980
clientWidth: 964
Ширина jQuery: 980
Браузер Android :
screen.width: 800
window.innerWidth: 800
clientWidth: 784
Ширина jQuery: 800
Firefox Mobile (он же Fennec) :
screen.width: 480
window.innerwidth: 980
clientWidth: 964
jQuery width: 980
Конечно, можно использовать результаты Safari, но не результаты браузера Android.
Парадоксально, что мобильные результаты Firefox точны. Хотя он обеспечивает приятный просмотр с точки зрения пользователя, это недостаточно большая цель для мобильных устройств, и есть много других вещей, которые не работают в этом браузере.