如何使用js获取实际屏幕大小(屏幕分辨率)

我只是想知道是否存在以js表示的屏幕实际大小(屏幕分辨率)。

  1. 我知道screen接口,但它的结果不是我想要的。
screen;
// Screen {availWidth: 1680, availHeight: 973, width: 1680, height: 1050, colorDepth: 30, …}

screen.width;
// 1680

screen.height;
// 1050

我得到了width: 1680, height: 1050

实际上屏幕尺寸是2880 x 1800

我的屏幕截图

那么,任何人都可以帮助吗?


解决方案

屏幕分辨率≠窗口宽度
更改屏幕dpi的大多数操作系统都会使用os dpi返回屏幕大小。例如,我的屏幕分辨率为1920x1080,而Windows默认dpi为125,因此js creen.width返回1600px

使用此选项:

function getResolution() {
  const realWidth = window.screen.width * window.devicePixelRatio;
  const realHeight = window.screen.height * window.devicePixelRatio;
  console.log(`Your screen resolution is: ${realWidth} x ${realHeight}`);
}

// test
getResolution();
// Your screen resolution is: 3840 x 2160

相关文章