JavaScript获取浏览器窗口尺寸的多浏览器兼容实现

作者:交互手记

时间:2026-10-27

浏览:472

本文详细解析如何使用JavaScript获取当前浏览器窗口的实际宽度和高度。针对Netscape、IE及DOM标准环境下的差异,文章提供了包含window.innerWidth、document.body.clientWidth及document.documentElement属性的兼容代码。通过实时监听窗口大小变化事件,确保页面能动态显示最新的窗口尺寸,适用于需要响应式布局或窗口状态监控的场景。

文章目录

获取窗口尺寸的原理与浏览器差异

本段代码主要依赖Document对象中关于窗口属性的相关功能,以下将逐一解析这些属性的具体作用与使用方式。


获取窗口尺寸的方法因浏览器类型而异:在Netscape浏览器中,需直接调用Window对象的属性;在IE浏览器中,需深入Document内部对body元素进行检测;而在符合DOM标准的浏览器中,获取窗口尺寸应关注根元素<html>的尺寸,而非<body>元素。


Window对象的innerWidth属性用于返回当前窗口的内部宽度,而innerHeight属性则用于返回当前窗口的内部高度。


Document对象的body属性对应HTML文档中的<body>标签;documentElement属性则指向HTML文档的根节点。


document.body.clientHeight表示HTML文档所在窗口的当前高度,而document.body.clientWidth表示HTML文档所在窗口的当前宽度。


多浏览器兼容的代码实现

具体实现代码如下:

 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>请调整浏览器窗口</title>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
</head>
<body>
<h2 align="center">请调整浏览器窗口大小</h2><hr>
<form action="#" method="get" name="form1" id="form1">
<!--显示浏览器窗口的实际尺寸-->
浏览器窗口 的实际高度: <input type="text" name="availHeight" size="4"><br>
浏览器窗口 的实际宽度: <input type="text" name="availWidth" size="4"><br>
</form>
<script type="text/javascript">
<!-- 
var winWidth = 0;
var winHeight = 0;
function findDimensions() //函数:获取尺寸
{ 
//获取窗口宽度
if (window.innerWidth)
winWidth = window.innerWidth;
else if ((document.body) && (document.body.clientWidth))
winWidth = document.body.clientWidth;
//获取窗口高度
if (window.innerHeight)
winHeight = window.innerHeight;
else if ((document.body) && (document.body.clientHeight))
winHeight = document.body.clientHeight;
//通过深入Document内部对body进行检测,获取窗口大小
if (document.documentElement && document.documentElement.clientHeight &&
document.documentElement.clientWidth)
{ 
winHeight = document.documentElement.clientHeight;
winWidth = document.documentElement.clientWidth;
} 
//结果输出至两个文本框
document.form1.availHeight.value= winHeight;
document.form1.availWidth.value= winWidth;
} 
findDimensions(); //调用函数,获取数值
window.onresize=findDimensions;
//--> 
</script>
</body>
</html>

运行该程序后,页面会显示两个文本框,分别展示窗口当前的宽度和高度。当用户调整浏览器窗口大小时,文本框内的数值会实时更新,反映不同时刻的窗口尺寸。


代码逻辑详细解析

源程序解读


(1)程序首先构建一个包含两个文本框的表单,用于显示窗口的当前宽度和高度,且数值会随窗口大小改变而动态更新。


(2)在JavaScript代码部分,首先定义winWidth和winHeight两个变量,用于存储窗口的高度和宽度值。


(3)在findDimensions()函数中,优先使用window.innerHeight和window.innerWidth获取窗口的高度和宽度,并将结果存入前述变量。


(4)若上述方法不可用,则通过检测Document内部的body元素来获取窗口大小,并更新变量。


(5)函数末尾,通过名称访问表单元素,将计算结果输出到两个文本框中。


(6)在JavaScript代码的最后部分,通过调用findDimensions()函数完成初始操作,并监听窗口大小变化事件。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章