JS获取页面窗口大小的代码解读


Posted in Javascript onDecember 01, 2011

本节代码主要使用了Document对象关于窗口的一些属性,这些属性的主要功能和用法如下。
要得到窗口的尺寸,对于不同的浏览器,需要使用不同的属性和方法:若要检测窗口的真实尺寸,在Netscape下需要使用Window的属性;在IE下需要深入Document内部对body进行检测;在DOM环境下,若要得到窗口的尺寸,需要注意根元素<html>的尺寸,而不是<body>元素。
Window对象的innerWidth属性包含当前窗口的内部宽度。Window对象的innerHeight属性包含当前窗口的内部高度。
Document对象的body属性对应HTML文档的<body>标签。Document对象的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 ( )函数,完成整个操作。
Javascript 相关文章推荐
JavaScript 三种不同位置代码的写法
Oct 25 Javascript
window.open 以post方式传递参数示例代码
Feb 27 Javascript
jquery.validate.js插件使用经验记录
Jul 02 Javascript
javascript设计模式之中介者模式Mediator
Dec 30 Javascript
再谈JavaScript线程
Jul 10 Javascript
浅谈JavaScript中的string拥有方法的原因
Aug 28 Javascript
JavaScript编码风格指南(中文版)
Aug 26 Javascript
JS中的多态实例详解
Oct 15 Javascript
使用clipboard.js实现复制功能的示例代码
Oct 16 Javascript
vuex的module模块用法示例
Nov 12 Javascript
jQuery实现验证用户登录
Dec 10 jQuery
vue报错function () { [native code] },无法出现我们想要的内容 Unknown custom element
Apr 11 Vue.js
基于JQuery的抓取博客园首页RSS的代码
Dec 01 #Javascript
jQuery 中使用JSON的实现代码
Dec 01 #Javascript
jquery中dom操作和事件的实例学习 下拉框应用
Dec 01 #Javascript
JS代码放在head和body中的区别分析
Dec 01 #Javascript
js获取浏览器的可视区域尺寸的实现代码
Nov 30 #Javascript
js取滚动条的尺寸的函数代码
Nov 30 #Javascript
window.event快达到全浏览器支持了,以后使用就方便了
Nov 30 #Javascript
You might like
拼音码表的生成
2006/10/09 PHP
十天学会php(2)
2006/10/09 PHP
Linux下创建nginx脚本-start、stop、reload…
2014/08/03 PHP
PHP strip_tags保留多个HTML标签的方法
2016/05/22 PHP
Laravel框架在本地虚拟机快速安装的方法详解
2018/06/11 PHP
关于Blog顶部的滚动导航条代码
2006/09/25 Javascript
JS无法捕获滚动条上的mouse up事件的原因猜想
2012/03/21 Javascript
调用HttpHanlder的几种返回方式小结
2013/12/20 Javascript
在JavaScript中使用JSON数据
2016/02/15 Javascript
JavaScript操作表单实例讲解(上)
2016/06/20 Javascript
vue params、query传参使用详解
2017/09/12 Javascript
jQuery中extend函数简单用法示例
2017/10/11 jQuery
Vue自定义指令封装节流函数的方法示例
2018/07/09 Javascript
Vue 监听列表item渲染事件方法
2018/09/06 Javascript
零基础写python爬虫之爬虫框架Scrapy安装配置
2014/11/06 Python
python使用wxpython开发简单记事本的方法
2015/05/20 Python
Python扫描IP段查看指定端口是否开放的方法
2015/06/09 Python
Python验证码识别的方法
2015/07/10 Python
Python编程实现正则删除命令功能
2017/08/30 Python
python操作MySQL 模拟简单银行转账操作
2017/09/27 Python
python生成tensorflow输入输出的图像格式的方法
2018/02/12 Python
利用Python自动化操作AutoCAD的实现
2020/04/01 Python
解决 jupyter notebook 回车换两行问题
2020/04/15 Python
python通过函数名调用函数的几种场景
2020/09/23 Python
美国艺术和工艺品商店:Hobby Lobby
2020/12/09 全球购物
怎样声明子类
2013/07/02 面试题
.net软件工程师应聘上机试题
2015/03/10 面试题
自考生自我鉴定范文
2013/10/01 职场文书
大专生毕业的自我评价
2014/02/06 职场文书
空气的环保标语
2014/06/12 职场文书
2015年大学班长个人工作总结
2015/04/24 职场文书
党员干部公开承诺书范文
2015/04/27 职场文书
2015年敬老院工作总结
2015/05/18 职场文书
奖学金主要事迹范文
2015/11/04 职场文书
python入门之算法学习
2021/04/22 Python
如何解决goland,idea全局搜索快捷键失效问题
2022/04/03 Golang