Как определить экран DPI с помощью JavaScript

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

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

Спасибо,

Атар.

Ответы

Ответ 1

<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/

Ответ 2

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

Экран с обычным разрешением будет возвращать 1. IPhone 4 вернет 2, но также возможны числа, такие как 1,8 или 2.12.

Ответ 3

До сих пор не было стандартного и поддерживаемого решения.

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

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