Javascript 通过浏览器以编程方式确定DPI?
我想通过编程确定用户显示器的DPI,以便以精确的单位(厘米/英寸)显示网页。我知道这是一个奇怪的要求:这是一个可视化研究项目,它是一种控制。目前,我们让用户在屏幕上放置一张信用卡,并将一个可调整大小的div(通过Mootools)与真实的信用卡相匹配,这样我们就可以获得DPI并正确显示页面Javascript 通过浏览器以编程方式确定DPI?,javascript,mootools,dpi,Javascript,Mootools,Dpi,我想通过编程确定用户显示器的DPI,以便以精确的单位(厘米/英寸)显示网页。我知道这是一个奇怪的要求:这是一个可视化研究项目,它是一种控制。目前,我们让用户在屏幕上放置一张信用卡,并将一个可调整大小的div(通过Mootools)与真实的信用卡相匹配,这样我们就可以获得DPI并正确显示页面 有人能想出一个程序化的方法来实现这一点吗?你不能。DPI是屏幕像素分辨率和显示器物理尺寸的函数。后者在我所知道的任何浏览器界面中都不可用。如果您是在javascript/mootools中执行此操作的,请与我
有人能想出一个程序化的方法来实现这一点吗?你不能。DPI是屏幕像素分辨率和显示器物理尺寸的函数。后者在我所知道的任何浏览器界面中都不可用。如果您是在javascript/mootools中执行此操作的,请与我联系。可以以英寸、厘米或甚至点(1/72英寸)为单位指定尺寸。如果您出于任何原因绝对需要DPI,即使您可以以这些单位指定大小,只需将您正在使用的“可调整大小”div调整为已知大小,然后根据转换后的像素大小进行计算 编辑:
不幸的是 点、厘米和英寸不是物理上的 对的它们只是相对的 对的这是我做的第一件事 直到我意识到它不是 正在工作并检查CSS规范。。到 我的沮丧Brandon Pelfrey 这是一个很好的观点;浏览器倾向于通过假设默认的DPI(我认为是72或96)来伪造它,并以此为准 嗯,如果你需要像你要求的那样精确的尺寸,那你就倒霉了。如果不能够读取浏览器所在显示器的当前分辨率和该显示器的“可查看屏幕区域”,您将永远无法获取它。你不可能通过Javascript获得这些 我建议您做一个默认的假设,即浏览器根据CSS单元进行操作和大小调整。然后,您可以允许用户使用您提到的方法“调整大小”,但只有在必要时。在单独的页面上执行此操作,DPI计算存储为用户会话的一部分或cookie
或者,一旦微软修复,您可以使用Silverlight的“设备独立单元”进行精确缩放 我认为您不会得到精确的结果-例如,您可以使用显示器调整图片大小。我宁愿坚持用户驱动的方法,尽管你可以检测屏幕分辨率作为第一次评估。如果没有目标计算机上运行的代码,从浏览器中是不可能的。如果您可以在目标计算机上安装一些东西,您可能能够确定有关监视器的足够信息来计算这些信息。不幸的是,点、厘米和英寸的CSS单位在物理上并不正确。它们只是相对正确。这是我第一次尝试,直到我意识到它不起作用并检查CSS规范。。令我沮丧的是,可能是