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

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

Есть ли способ определения DPI экрана через JavaScript?

Спасибо,

Атар.

3 ответа

Решение
<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/

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

Нормальные экраны dpi вернут 1. iPhone 4 вернет 2, но также возможны цифры вроде 1.8 или 2.12.

Пока что не существует стандартного и поддерживаемого везде решения.

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

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

Другие вопросы по тегам