Как получить ширину экрана iPad в Javascript

Мне нужно динамически получать размер экрана всех мобильных устройств с веб-страницы с помощью Javascript.

Я пробовал это:

//get window's size
if (document.body && document.body.offsetWidth) {
 windowsWidth = document.body.offsetWidth;
 windowsHeight = document.body.offsetHeight;
}
if (document.compatMode=='CSS1Compat' &&
    document.documentElement &&
    document.documentElement.offsetWidth ) {
 windowsWidth = document.documentElement.offsetWidth;
 windowsHeight = document.documentElement.offsetHeight;
}
if (window.innerWidth && window.innerHeight) {
 windowsWidth = window.innerWidth;
 windowsHeight = window.innerHeight;
}

Но на iPad у меня получается вот такой размер: 980 x 1080 (не настоящий 768 x 1024).

Спасибо

Мауро


person Mauro Cattaneo    schedule 27.05.2012    source источник
comment
здесь см. этот ответ: stackoverflow.com/q/6850164/1291428   -  person Sebas    schedule 28.05.2012
comment
размер окна != разрешение экрана.   -  person gdoron is supporting Monica    schedule 28.05.2012


Ответы (1)


Для получения размеров экрана на iPad необходимо прочитать свойства ширины и высоты объекта экрана.

var height = screen.height;
var width = screen.width;

Они обеспечат 768 и 1024 в зависимости от ориентации.

person Jacob T. Nielsen    schedule 19.04.2013
comment
screen.width и screen.height возвращают неверные значения. Посмотрите на наблюдения ниже: - Для iPad3 возвращается 768 x 1024, тогда как исходное разрешение составляет 1536 x 2048. - Для iPhone5 возвращается 320 x 568, тогда как исходное разрешение составляет 640 x 1136. По моим наблюдениям, screen.width и screen.height отлично работают для устройств Android. Но для устройств iOS он возвращает неверные значения. Любые идеи о том, как найти разрешение экрана для устройств iOS? - person Ankit Prajapati; 26.10.2015
comment
@AnkitPrajapati возвращает разрешение CSS, которое является целью screen.width. Вы всегда должны относиться к разрешению устройства как к разрешению css. - person Josh Lyness; 30.01.2018
comment
@JoshLyness: Спасибо за разъяснение. :) - person Ankit Prajapati; 30.01.2018
comment
@AnkitPrajapati Я знаю, что вы, вероятно, уже поняли это, но это на всякий случай, если у кого-то еще есть такая же проблема;) - person Josh Lyness; 31.01.2018