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 相关文章推荐
js 获取中文拼音,Select自动匹配字母获取值的代码
Sep 23 Javascript
解决js图片加载时出现404的问题
Nov 30 Javascript
Javascript实现检测客户端类型代码封包
Dec 03 Javascript
微信公众平台开发教程(六)获取个性二维码的实例
Dec 02 Javascript
JS实现移动端整屏滑动的实例代码
Nov 10 Javascript
layui从数据库中获取复选框的值并默认选中方法
Aug 15 Javascript
总结javascript三元运算符知识点
Sep 28 Javascript
vue中v-for通过动态绑定class实现触发效果
Dec 06 Javascript
基于Node.js的大文件分片上传示例
Jun 19 Javascript
ElementUI多个子组件表单的校验管理实现
Nov 07 Javascript
Vue时间轴 vue-light-timeline的用法说明
Oct 29 Javascript
ES5和ES6中类的区别总结
Dec 21 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中用文本文件做数据库的实现方法
2008/03/27 PHP
php编写的简单页面跳转功能实现代码
2013/11/27 PHP
php微信公众号开发(4)php实现自定义关键字回复
2016/12/15 PHP
分享别人写的一个小型js框架
2007/08/13 Javascript
js跟随滚动条滚动浮动代码
2009/12/31 Javascript
JavaScript的9种继承实现方式归纳
2015/05/18 Javascript
sencha ext js 6 快速入门(必看)
2016/06/01 Javascript
Vuejs第一篇之入门教程详解(单向绑定、双向绑定、列表渲染、响应函数)
2016/09/09 Javascript
使用JS读取XML文件的方法
2016/11/25 Javascript
彻底搞懂并解决vue-cli4中图片显示的问题实现
2020/08/31 Javascript
原生js实现购物车
2020/09/23 Javascript
python重试装饰器示例
2014/02/11 Python
Python爬虫抓取手机APP的传输数据
2016/01/22 Python
Python操作配置文件ini的三种方法讲解
2019/02/22 Python
linux安装python修改默认python版本方法
2019/03/31 Python
pytorch使用Variable实现线性回归
2019/05/21 Python
pyqt5 获取显示器的分辨率的方法
2019/06/18 Python
python多线程共享变量的使用和效率方法
2019/07/16 Python
pytorch中使用cuda扩展的实现示例
2020/02/12 Python
Python操作Jira库常用方法解析
2020/04/10 Python
Python3爬虫中识别图形验证码的实例讲解
2020/07/30 Python
如何Tkinter模块编写Python图形界面
2020/10/14 Python
pytorch下的unsqueeze和squeeze的用法说明
2021/02/06 Python
详解Html5页面实现下载文件(apk、txt等)的三种方式
2018/10/22 HTML / CSS
阿提哈德航空官方网站:Etihad Airways
2017/01/06 全球购物
JNI的定义
2012/11/25 面试题
成品仓管员工作职责
2013/12/29 职场文书
单位单身证明范本
2014/01/11 职场文书
创业计划书——互联网商机
2014/01/12 职场文书
代理协议书范本
2014/04/22 职场文书
预备党员转正考核材料
2014/06/03 职场文书
网络文明传播志愿者活动方案
2014/08/20 职场文书
2014年帮扶工作总结
2014/11/26 职场文书
Golang中异常处理机制详解
2021/06/08 Golang
Python实现简单得递归下降Parser
2022/05/02 Python
使用CSS实现按钮边缘跑马灯动画
2023/05/07 HTML / CSS