JavaScript screen.height 和 screen.width 返回不正确的值

Posted

技术标签:

【中文标题】JavaScript screen.height 和 screen.width 返回不正确的值【英文标题】:JavaScript screen.height and screen.width returns incorrect values 【发布时间】:2013-04-23 01:04:21 【问题描述】:

我想从 JS 获取用户显示的屏幕分辨率, 所以我决定使用 screen.height 和 screen.width 属性,但我注意到我得到了一些不正确的值,例如我有全高清显示器,高度为 1280 像素,但 screen.height 返回 630,宽度为 1120。这可能是什么原因? 谢谢!

编辑:对我来说,它似乎发生在 FireFox 上,从 IE 10 我得到了正确的值。

【问题讨论】:

这和***.com/questions/3437786/…一样吗?您是否使用 jQuery 库获得一致的结果? 嗯.. 我发现这个问题发生在我使用 Zoom 时,所以当我将缩放重置为默认值时,FireFox 会返回正确的值。 【参考方案1】:

Firefox 根据缩放百分比返回一个值;但是 window.devicePixelRatio 会给你这个百分比。因此下面的 JS 代码给出了正确的值:

var w = screen.width; var h = screen.height;
var DPR = window.devicePixelRatio;
w = Math.round(DPR * w);
h = Math.round(DPR * h);

【讨论】:

以上是关于JavaScript screen.height 和 screen.width 返回不正确的值的主要内容,如果未能解决你的问题,请参考以下文章

什么是 Screen.width 和 Screen.height 值?

javascript宿主对象之window.screenwindow.close()/open()window.moveTowindow.resizeTo

window.screen.width/height 不应该对应于实际的屏幕宽度/高度吗?

window.screen.height和window.screen.availHeight和document.body.clientHeight和document.documentElement.c

用 JavaScript 控制浏览器窗口大小?

javascript中子窗口如何从父窗口继承css样式?