Как определить экран 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 года, но вам придется продолжать поиск снова и настраивать свой код каждый раз, пока что-то окончательно не станет стандартизированным и не будет реализовано в каждом браузере с широко распространенным принятием версии, что вы можете перестать заботиться о более старых версиях...