admin管理员组

文章数量:1570429

Screen 对象

JavaScript Screen 对象包含了有关客户端显示屏幕的相关信息。JavaScript 程序可以利用这些信息来优化显示输出,以达到更精准的显示要求。例如,一个程序可以根据显示器的尺寸选择使用大图像还是使用小图像等。

提示:Screen 对象虽然没有明确的相关标准,但所有浏览器都支持该对象。

Screen 对象属性

Screen 对象的属性并不是所有浏览器都支持,具体见下表说明。

属性 描述 说明
Screen.availHeight 取得显示屏幕的高度(Windows 任务栏除外),像素单位 都支持
Screen.availWidth 取得显示屏幕的宽度(Windows 任务栏除外),像素单位 都支持
Screen.colorDepth 目标设备或缓冲器上的调色板的比特深度 都支持
Screen.height 取得显示屏幕的高度 都支持
Screen.width 取得显示器屏幕的宽度 都支持
Screen.bufferDepth 设置或得到调色板的比特深度 仅 IE 支持
Screen.deviceXDPI 得到显示屏幕的每英寸水平点数 仅 IE 支持
Screen.deviceYDPI 得到显示屏幕的每英寸垂直点数 仅 IE 支持
Screen.fontSmoothingEnabled 得到用户是否在显示控制面板中启用了字体平滑 仅 IE 支持
Screen.logicalXDPI 得到显示屏幕每英寸的水平方向的常规点数 仅 IE 支持
Screen.logicalYDPI 得到显示屏幕每英寸的垂直方向的常规点数 仅 IE 支持
Screen.updateInterval 设置或得到屏幕的刷新率 仅 IE 支持
Screen.pixelDepth 得到显示屏幕的颜色分辨率(比特每像素) 仅 IE 不支持

说明

  1. Screen.availHeight 和 Screen.availWidth 属性值不包括 Windows 操作系统下任务栏占用的长度。
  2. 在生产环境中,尽量不要使用有浏览器不支持的属性,否则可能会导致程序运行错误。

检测用户客户端屏幕信息的实例

下面是一个利用 JavaScript Screen 对象检测用户客户端屏幕信息的实例。对于浏览器不支持的属性,输出值会是 undefined。

<html>
<body>
<script language="JavaScript">

document.write("<p>屏幕分辨率: ")
document.write(screen.width + "*" + screen.height + "</p>")
document.write("<p>屏幕可显示面积:")
document.write(screen.availWidth + "*" + screen.availHeight + "</p>")
document.write("<p>颜色深度: ")
document.write(screen.colorDepth + "</p>")
document.write("<p>缓冲深度:")
document.write(screen.bufferDepth + "</p>")
document.write("<p>每英寸水平点数:")
document.write(screen.deviceXDPI + "</p>")
document.write("<p>每英寸垂直点数:")
document.write(screen.deviceYDPI + "</p>")
document.write("<p>水平方向的常规点数:")
document.write(screen.logicalXDPI + "</p>")
document.write("<p>垂直方向的常规点数:")
document.write(screen.logicalYDPI + "</p>")
document.write("<p>是否启用了字体平滑:")
document.write(screen.fontSmoothingEnabled + "</p>")
document.write("<p>屏幕的颜色分辨率(比特/像素):")
document.write(screen.pixelDepth + "</p>")
document.write("<p>屏幕刷新率:")
document.write(screen.updateInterval + "</p>")

</script>
</body>
</html>

实例输出结果

在 Windows XP 操作系统,不同浏览器输出结果如下:

IE8

屏幕分辨率: 1280*800
屏幕可显示面积:1280*770
颜色深度: 32
缓冲深度:0
每英寸水平点数:96
每英寸垂直点数:96
水平方向的常规点数:96
垂直方向的常规点数:96
是否启用了字体平滑:true
屏幕的颜色分辨率(比特/像素):undefined
屏幕刷新率:0

Chrome 19.0

屏幕分辨率: 1280*800
屏幕可显示面积:1280*770
颜色深度: 32
缓冲深度:undefined
每英寸水平点数:undefined
每英寸垂直点数:undefined
水平方向的常规点数:undefined
垂直方向的常规点数:undefined
是否启用了字体平滑:undefined
屏幕的颜色分辨率(比特/像素):32
屏幕刷新率:undefined

Firefox 13.0

屏幕分辨率: 1280*800
屏幕可显示面积:1280*770
颜色深度: 24
缓冲深度:undefined
每英寸水平点数:undefined
每英寸垂直点数:undefined
水平方向的常规点数:undefined
垂直方向的常规点数:undefined
是否启用了字体平滑:undefined
屏幕的颜色分辨率(比特/像素):24
屏幕刷新率:undefined

可见,不同的浏览器,显示出来的数据可能不尽相同,比较通用的是屏幕尺寸,这也是实际上最常用的


本文标签: 客户端显示屏幕对象信息JavaScript