Как определить DPI экрана с помощью JavaScript - PullRequest
16 голосов
/ 15 февраля 2012

Единственный способ, который я нашел до сих пор, - это получение offsetWidth, offsetHeight тестового div элемента с height и width одного дюйма: http://www.infobyip.com/detectmonitordpi.php

Есть ли способвместо этого определить разрешение экрана через JavaScript?

Спасибо,

Atara.

Ответы [ 3 ]

21 голосов
/ 27 февраля 2012

В webkit вы можете определить, есть ли у вашего пользователя так называемый «экран с высоким разрешением», просто извлекая значение из window.devicePixelRatio.

Обычные экраны dpi вернутся 1. IPhone 4 вернет 2, но также возможны цифры вроде 1.8 или 2.12.

10 голосов
/ 15 февраля 2012
<div id='testdiv' style='height: 1in; left: -100%; position: absolute; top: -100%; width: 1in;'></div>
<script type='text/javascript'>
    dpi_x = document.getElementById('testdiv').offsetWidth;
    dpi_y = document.getElementById('testdiv').offsetHeight;
</script>

Затем вы можете использовать JQuery для отправки dpi_x и dpi_y на ваш сервер

http://jsfiddle.net/sxfv3/

4 голосов
/ 12 января 2013

На данный момент не существует стандартного и поддерживаемого везде решения.

window.devicePixelRatio, как предполагает Лорен Питерс, работает, если вам не интересны IE или какой-либо браузер с древних времен, например, в начале января 2013 года (например, Firefox 17).

См. Кросс-браузер Retina / Медиа-запросы с высоким разрешением (и различные комментарии и ссылки там) о том, как получить эту информацию с конца 2012 года, но вам придется продолжить поиск и настроить свой код, время от времени, пока что-то окончательно не стандартизируется и не внедряется в каждый браузер с достаточно распространенным внедрением версий, что позволяет перестать заботиться о старых версиях…

...