我到目前为止找到的唯一方法是获取div
和height
一英寸的测试width
元素的offsetWidth,offsetHeight:
http://www.infobyip.com/detectmonitordpi.php
有没有办法通过JavaScript检测屏幕DPI?
谢谢,
Atara。
答案 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_x
和dpi_y
发送到您的服务器
答案 2 :(得分:4)
到目前为止,还没有任何标准和支持的解决方案。
正如laurens peeters所建议的那样,{p>window.devicePixelRatio
如果你不关心IE或者远古时代的任何浏览器,比如2013年1月初(例如,Firefox 17),那么它确实有用。
请参阅Cross Browser Retina/High Resolution Media Queries(及其中的各种评论和链接)了解截至2012年底如何获取此信息,但您必须经常重新搜索,并经常调整代码,直到某些内容为止最终得到标准化,并在每个浏览器中实现,通过足够广泛的版本采用,你可以停止关心旧版本......