Разве window.screen.width / height не должно соответствовать реальной ширине / высоте экрана? - PullRequest
4 голосов
/ 13 сентября 2010

Играя с браузером WebKit в новом Kindle 3G, я заметил, что window.screen.width и window.screen.height не отражают фактические размеры экрана.Размеры физического экрана (точнее, бумаги) составляют 800 x 600 .Я получаю:

  • 800 x 506 в ландшафтном режиме
  • 600 x 706 в портретном режиме

Но, что интересно, и Chrome, и Safari (которые также являются WebKit), работающими на моем рабочем столе, сообщают о фактическом разрешении экрана.

Согласно MDC , эти свойства не являются частью какой-либо спецификации, поэтомувероятно, нет четкого определения того, какую ширину / высоту следует сообщать.Но разве не следует ожидать, что они отражают реальные размеры экрана?

Ответы [ 4 ]

5 голосов
/ 03 марта 2011

Обновление:

Проблема, которую мы видим в эмуляторе с window.screen.width, - это когда мы используем экраны, которые не отражают фактические пиксели устройства.То, что вы видите на экране, это 320, а устройство - 480 или что-то еще.Я не понимаю, однако, почему значение ширины экрана дает размер эмулятора на экране, а не фактические пиксели.

Эта проблема может быть та же проблема с устройствами?Если их плотность выше в некоторых размерах ... по какой-либо причине это может привести к неправильному размеру ширины экрана?

В любом случае, читайте ниже для моего решения.


screen.У меня не работает доступность на некоторых экранах определенных размеров на эмуляторе.

Теперь у меня работает только:

window.innerWidth
window.innerHeight

, который возвращает значение области просмотра.В моем случае я использую приложение HTML5.Эти значения не будут обновляться при увеличении, по-видимому.

У них есть некоторые проблемы с этими размерами в Android Webkit.Вы можете увидеть, как разработчики из Android говорят об этом здесь .Вероятно, исправлено в Honeycomb.

Кто-то утверждает, что он принимает некоторые размеры, как если бы присутствовала программная клавиатура.

1 голос
/ 13 сентября 2010

Я думаю, что WebKit ничего не может сделать, если он получает неправильные значения из системы.Конечно, эти значения должны быть представлены screen.availWidth и screen.availHeight, но я думаю, что это связано с event.screenX и event.screenY для позиций мыши (указателя).

1 голос
/ 13 сентября 2010

Похоже, что screen.availWidth и screen.width возвращают доступную ширину все время во многих мобильных операционных системах.

Мне не удалось найти какую-либо документацию по этому вопросу, однако я протестировал Android 2.2 и получил размер экрана за вычетом верхней строки меню, независимо от того, что запрашивается.

0 голосов
/ 18 октября 2013

Разница в том, что размер строки состояния Android и / или нижней строки.

...