web-dev-qa-db-ja.com

JavaScriptを使用して画面のDPIを検出する方法

私が今まで見つけた唯一の方法は、1インチのdivheightを持つテストwidth要素のoffsetWidth、offsetHeightを取得することです: http:// www.infobyip.com/detectmonitordpi.php

代わりにJavaScriptを介して画面のDPIを検出する方法はありますか?

ありがとう、

アタラ。

17
Atara
<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_xdpi_yをサーバーに送信できます

http://jsfiddle.net/sxfv3/

11
Lixas

Webkitでは、window.devicePixelRatioから値を取得するだけで、ユーザーがいわゆる「高dpi画面」を持っているかどうかを検出できます。

通常のdpi画面は1を返します。iPhone4は2を返しますが、1.8や2.12のような数値も可能です。

22
laurens peeters

これまでのところ、標準的でサポートされているソリューションはありません。

window.devicePixelRatioは、laurens peetersが示唆しているように、IEや、2013年1月初旬(Firefox 17など)のような古代のブラウザを気にしない場合でも機能します。

2012年後半の時点でこの情報を取得する方法については、 Cross Browser Retina/High Resolution Media Queries (およびそこにあるさまざまなコメントとリンク)を参照してください。ただし、もう一度検索し、コードを調整する必要があります。何かが最終的に標準化され、すべてのブラウザに実装され、古いバージョンを気にするのをやめることができるほど広く採用されるまで、頻繁に…

4
abarnert