Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过浏览器以编程方式确定DPI?_Javascript_Mootools_Dpi - Fatal编程技术网

Javascript 通过浏览器以编程方式确定DPI?

Javascript 通过浏览器以编程方式确定DPI?,javascript,mootools,dpi,Javascript,Mootools,Dpi,我想通过编程确定用户显示器的DPI,以便以精确的单位(厘米/英寸)显示网页。我知道这是一个奇怪的要求:这是一个可视化研究项目,它是一种控制。目前,我们让用户在屏幕上放置一张信用卡,并将一个可调整大小的div(通过Mootools)与真实的信用卡相匹配,这样我们就可以获得DPI并正确显示页面 有人能想出一个程序化的方法来实现这一点吗?你不能。DPI是屏幕像素分辨率和显示器物理尺寸的函数。后者在我所知道的任何浏览器界面中都不可用。如果您是在javascript/mootools中执行此操作的,请与我

我想通过编程确定用户显示器的DPI,以便以精确的单位(厘米/英寸)显示网页。我知道这是一个奇怪的要求:这是一个可视化研究项目,它是一种控制。目前,我们让用户在屏幕上放置一张信用卡,并将一个可调整大小的div(通过Mootools)与真实的信用卡相匹配,这样我们就可以获得DPI并正确显示页面


有人能想出一个程序化的方法来实现这一点吗?

你不能。DPI是屏幕像素分辨率和显示器物理尺寸的函数。后者在我所知道的任何浏览器界面中都不可用。

如果您是在javascript/mootools中执行此操作的,请与我联系。可以以英寸、厘米或甚至点(1/72英寸)为单位指定尺寸。如果您出于任何原因绝对需要DPI,即使您可以以这些单位指定大小,只需将您正在使用的“可调整大小”div调整为已知大小,然后根据转换后的像素大小进行计算

编辑:


不幸的是 点、厘米和英寸不是物理上的 对的它们只是相对的 对的这是我做的第一件事 直到我意识到它不是 正在工作并检查CSS规范。。到 我的沮丧Brandon Pelfrey

这是一个很好的观点;浏览器倾向于通过假设默认的DPI(我认为是72或96)来伪造它,并以此为准

嗯,如果你需要像你要求的那样精确的尺寸,那你就倒霉了。如果不能够读取浏览器所在显示器的当前分辨率和该显示器的“可查看屏幕区域”,您将永远无法获取它。你不可能通过Javascript获得这些

我建议您做一个默认的假设,即浏览器根据CSS单元进行操作和大小调整。然后,您可以允许用户使用您提到的方法“调整大小”,但只有在必要时。在单独的页面上执行此操作,DPI计算存储为用户会话的一部分或cookie


或者,一旦微软修复,您可以使用Silverlight的“设备独立单元”进行精确缩放

我认为您不会得到精确的结果-例如,您可以使用显示器调整图片大小。我宁愿坚持用户驱动的方法,尽管你可以检测屏幕分辨率作为第一次评估。

如果没有目标计算机上运行的代码,从浏览器中是不可能的。如果您可以在目标计算机上安装一些东西,您可能能够确定有关监视器的足够信息来计算这些信息。

不幸的是,点、厘米和英寸的CSS单位在物理上并不正确。它们只是相对正确。这是我第一次尝试,直到我意识到它不起作用并检查CSS规范。。令我沮丧的是,可能是