如何找出每英寸网页查看器的像素数?

Car*_*ine 7 browser size screen pixels

任何人都可以想到一种方法,我可以发现用户每英寸像素?我希望确保在网络浏览器中的图像显示确切大小我需要它,所以使用分辨率的组合,(我可以从用户代理获得)和每英寸的像素数,我可以做到这一点.

但是,我不确定是否有任何方法可以发现每英寸用户像素,理想情况下使用JavaScript或其他一些非侵入性方法.

有什么建议?

谢谢,

CJ

Jac*_*cco 6

您可以使用以下javascript函数来获取DPI.

<script type="text/javascript">
   var dpi = {
      v: 0,
      get: function (noCache) {
         if (noCache || dpi.v == 0) {
            e = document.body.appendChild(document.createElement('DIV'));
            e.style.width = '1in';
            e.style.padding = '0';
            dpi.v = e.offsetWidth;
            e.parentNode.removeChild(e);
         }
         return dpi.v;
      }
   }

    alert(dpi.get(true));  // recalculate
    alert(dpi.get(false)); // use cached value
</script>
Run Code Online (Sandbox Code Playgroud)

但是,我认为它总会96在Windows机器上返回.

据我所知,操作系统无法确定视口的实际物理尺寸.因此,很可能软件实际上不可能知道真实的DPI.

然而,专业人士是某些分支机构确保屏幕上的DPI与现实生活中的DPI相匹配.在这种情况下,上述javascript可能就足够了.

注意:
在WinXP和Win2k上的Opera 9,IE6和7以及Firefox 3.6中测试了上述代码.

更新:
添加了noCache参数.但我怀疑它会产生什么影响.我在上面提到的Windows版本中使用放大FireFox和Opera进行测试,并且无论缩放量如何,它们都会将DPI引用为"96".看看移动设备对此有何看法会很有趣.


And*_*ett 5

你可以像旧的绘图包那样做,并显示一个可伸缩的标尺.让您的用户拖动虚拟标尺,直到它与他们放在屏幕上的物理标尺相匹配.

对生产使用不是一个严肃的建议,但可能是实际得到正确答案的唯一方法:(.