js获取网页高度(详细整理)


Posted in Javascript onDecember 28, 2012

网页可见区域宽: document.body.clientWidth
网页可见区域高: document.body.clientHeight
网页可见区域宽: document.body.offsetWidth (包括边线的宽)
网页可见区域高: document.body.offsetHeight (包括边线的高)
网页正文全文宽: document.body.scrollWidth
网页正文全文高: document.body.scrollHeight
网页被卷去的高: document.body.scrollTop
网页被卷去的左: document.body.scrollLeft
网页正文部分上: window.screenTop
网页正文部分左: window.screenLeft
屏幕分辨率的高: window.screen.height
屏幕分辨率的宽: window.screen.width
屏幕可用工作区高度: window.screen.availHeight
屏幕可用工作区宽度: window.screen.availWidth

<script> 
function getInfo() 
{ 
var s = ""; 
s += " 网页可见区域宽:"+ document.body.clientWidth; 
s += " 网页可见区域高:"+ document.body.clientHeight; 
s += " 网页可见区域宽:"+ document.body.offsetWidth + " (包括边线和滚动条的宽)"; 
s += " 网页可见区域高:"+ document.body.offsetHeight + " (包括边线的宽)"; 
s += " 网页正文全文宽:"+ document.body.scrollWidth; 
s += " 网页正文全文高:"+ document.body.scrollHeight; 
s += " 网页被卷去的高(ff):"+ document.body.scrollTop; 
s += " 网页被卷去的高(ie):"+ document.documentElement.scrollTop; 
s += " 网页被卷去的左:"+ document.body.scrollLeft; 
s += " 网页正文部分上:"+ window.screenTop; 
s += " 网页正文部分左:"+ window.screenLeft; 
s += " 屏幕分辨率的高:"+ window.screen.height; 
s += " 屏幕分辨率的宽:"+ window.screen.width; 
s += " 屏幕可用工作区高度:"+ window.screen.availHeight; 
s += " 屏幕可用工作区宽度:"+ window.screen.availWidth; 
s += " 你的屏幕设置是 "+ window.screen.colorDepth +" 位彩色"; 
s += " 你的屏幕设置 "+ window.screen.deviceXDPI +" 像素/英寸"; 
//alert (s); 
} 
getInfo(); 
</script>

在我本地测试当中:
在IE、FireFox、Opera下都可以使用
document.body.clientWidth
document.body.clientHeight
即可获得,很简单,很方便。
而在公司项目当中:
Opera仍然使用
document.body.clientWidth
document.body.clientHeight
可是IE和FireFox则使用
document.documentElement.clientWidth
document.documentElement.clientHeight
原来是W3C的标准在作怪啊
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

如果在页面中添加这行标记的话
在IE中
document.body.clientWidth ==> BODY对象宽度
document.body.clientHeight ==> BODY对象高度
document.documentElement.clientWidth ==> 可见区域宽度
document.documentElement.clientHeight ==> 可见区域高度
在FireFox中
document.body.clientWidth ==> BODY对象宽度
document.body.clientHeight ==> BODY对象高度
document.documentElement.clientWidth ==> 可见区域宽度
document.documentElement.clientHeight ==> 可见区域高度
?
在Opera中
document.body.clientWidth ==> 可见区域宽度
document.body.clientHeight ==> 可见区域高度
document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽)
document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)
而如果没有定义W3C的标准,则
IE为
document.documentElement.clientWidth ==> 0
document.documentElement.clientHeight ==> 0
FireFox为
document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽)document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)
Opera为
document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽)document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)
真是一件麻烦事情,其实就开发来看,宁可少一些对象和方法,不使用最新的标准要方便许多啊。
有时候需要取页面的底部, 就会用到document.body.clientHeight , 在HTML 标准中(这一句就能取到整个页面的高度, 不论body 的实际内容到底有多高, 例如, 1074*768 的分辨率, 页面最大化时, 这个高度约为720 , 即使页面上只有一句”hello world” , 也仍然取到720.
可是在XHTML中, 如果body 体中只有一行, 则document.body.clientHeight 只能取到那一行的高度, 约20px, 这时如何还想取到整个页面的高度, 就要用document.documentElement.clientHeight 来获取了.
原因是: 在HTML 中, body 是整个DOM 的根, 而在XHTML 中, document 才是根, body 不再是根, 所以取body 的属性时, 不能再取到整个页面的值.

区别新旧标准的行是:
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN” >
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“>
前者指明该页面使用旧标准, 后者指明该页面使用新标准.

总结:
XHTML中用 document.documentElement.clientHeight 代替

document.body.clientHeight
Javascript 相关文章推荐
jQuery autocomplete插件修改
Apr 17 Javascript
jquery $.fn $.fx是什么意思有什么用
Nov 04 Javascript
跟我学习javascript的prototype,getPrototypeOf和__proto__
Nov 17 Javascript
基于JavaScript实现单选框下拉菜单添加文件效果
Jun 26 Javascript
微信小程序 天气预报开发实例代码源码
Jan 20 Javascript
bootstrap PrintThis打印插件使用详解
Feb 20 Javascript
angular4模块中给标签添加背景图的实现方法
Sep 15 Javascript
JavaScript实现换肤功能
Sep 15 Javascript
vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法
Nov 28 Javascript
在Koa.js中实现文件上传的接口功能
Oct 08 Javascript
JavaScript中EventBus实现对象之间通信
Oct 18 Javascript
Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)
Nov 05 Javascript
前台js改变Session的值(用ajax实现)
Dec 28 #Javascript
window.open的页面如何刷新(父页面)上层页面
Dec 28 #Javascript
CSS(js)限制页面显示的文本字符长度
Dec 27 #Javascript
jQuery基础框架浅入剖析
Dec 27 #Javascript
Three.js源码阅读笔记(基础的核心Core对象)
Dec 27 #Javascript
Three.js源码阅读笔记(Object3D类)
Dec 27 #Javascript
Three.js源码阅读笔记(物体是如何组织的)
Dec 27 #Javascript
You might like
用php或asp创建网页桌面快捷方式的代码
2010/03/23 PHP
解析如何去掉CodeIgniter URL中的index.php
2013/06/25 PHP
PHP小教程之实现双向链表
2014/06/12 PHP
PHP的APC模块实现上传进度条
2015/10/27 PHP
PHPstorm快捷键(分享)
2017/07/17 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
2020/03/23 PHP
用javascript连接access数据库的方法
2006/11/17 Javascript
jquery数组过滤筛选方法grep()简介
2014/06/06 Javascript
javascript 控制input只允许输入的各种指定内容
2014/06/19 Javascript
JavaScript中的alert()函数使用技巧详解
2014/12/29 Javascript
JS实现FLASH幻灯片图片切换效果的方法
2015/03/04 Javascript
JavaScript中5种调用函数的方法
2015/03/12 Javascript
即将发布的jQuery 3 有哪些新特性
2016/04/14 Javascript
清除浏览器缓存的几种方法总结(必看)
2016/12/09 Javascript
一个简易时钟效果js实现代码
2020/03/25 Javascript
基于Vue2.0+ElementUI实现表格翻页功能
2017/10/23 Javascript
vue2.0页面前进刷新回退不刷新的实现方法
2018/07/31 Javascript
Angular服务Request异步请求的实例讲解
2018/08/13 Javascript
jQuery中常用动画效果函数知识点整理
2018/08/19 jQuery
详解webpack打包第三方类库的正确姿势
2018/10/20 Javascript
微信小程序实现留言板功能
2018/11/02 Javascript
vue 项目接口管理的实现
2019/01/17 Javascript
使用Vue-Awesome-Swiper实现旋转叠加轮播效果&amp;平移轮播效果
2019/08/16 Javascript
Python编程中NotImplementedError的使用方法
2018/04/21 Python
Python贪心算法实例小结
2018/04/22 Python
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
2018/09/04 Python
不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)
2019/04/16 Python
keras自动编码器实现系列之卷积自动编码器操作
2020/07/03 Python
用Python实现童年贪吃蛇小游戏功能的实例代码
2020/12/07 Python
美国最大的高尔夫发球时间预订网站:TeeOff.com
2018/03/28 全球购物
政府法律服务方案
2014/06/14 职场文书
2015年实习生工作总结报告
2015/04/28 职场文书
解放思想大讨论活动总结
2015/05/09 职场文书
2016元旦主持人开场白
2015/12/03 职场文书
幼儿园体操比赛口号
2015/12/25 职场文书
php 防护xss,PHP的防御XSS注入的终极解决方案
2021/04/01 PHP