Heim  >  Artikel  >  Web-Frontend  >  js获取网页高度(详细整理)_javascript技巧

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

WBOY
WBOYOriginal
2016-05-16 17:45:08940Durchsuche

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


如果在页面中添加这行标记的话
在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 的属性时, 不能再取到整个页面的值.

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

总结:
XHTML中用 document.documentElement.clientHeight 代替
复制代码 代码如下:

document.body.clientHeight
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn