如何使用JavaScript检测屏幕DPI

时间:2012-02-15 11:05:36

标签: php javascript dpi

我到目前为止找到的唯一方法是获取divheight一英寸的测试width元素的offsetWidth,offsetHeight: http://www.infobyip.com/detectmonitordpi.php

有没有办法通过JavaScript检测屏幕DPI?

谢谢,

Atara。

3 个答案:

答案 0 :(得分:21)

在webkit中,您可以通过从window.devicePixelRatio中检索值来检测您的用户是否具有所谓的“高dpi屏幕”。

正常dpi屏幕将返回1。 iPhone 4将返回2,但也可以使用1.8或2.12等数字。

答案 1 :(得分:10)

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

答案 2 :(得分:4)

到目前为止,还没有任何标准和支持的解决方案。

正如laurens peeters所建议的那样,{p> window.devicePixelRatio如果你不关心IE或者远古时代的任何浏览器,比如2013年1月初(例如,Firefox 17),那么它确实有用。

请参阅Cross Browser Retina/High Resolution Media Queries(及其中的各种评论和链接)了解截至2012年底如何获取此信息,但您必须经常重新搜索,并经常调整代码,直到某些内容为止最终得到标准化,并在每个浏览器中实现,通过足够广泛的版本采用,你可以停止关心旧版本......