JS中获得的关于窗口宽高和滚动值的属性列表:(转载)

JS中取得的关于窗口宽高和滚动值的属性列表:(转载)

首先,这是个痛苦的尝试。
  在工作中尝试把一个FLASH居中全屏放置,窗口RESIZE的时候和页面SCROLL的时候都要动态变化,需要取得当前窗口显示区域的WIDTH与HEIGHT,翻了翻资料脑子就一半面一半水搅匀了。类似的参数我全列出来:

window.screen.width: document.body.offsetWidth: document.documentElement.offsetWidth:
window.screen.height: document.body.offsetHeight: document.documentElement.offsetHeight:
window.screen.availWidth: document.body.scrollWidth: document.documentElement.scrollWidth:
window.screen.availHeight: document.body.scrollHeight: document.documentElement.scrollHeight:
window.scrollMaxX: document.body.scrollLeft: document.documentElement.scrollLeft:
window.scrollMaxY: document.body.scrollTop: document.documentElement.scrollTop:
window.scrollX: document.body.clientTop: document.documentElement.clientTop:
window.scrollY: document.body.clientLeft: document.documentElement.clientLeft:
window.pageXOffset: document.body.clientWidth: document.documentElement.clientWidth:
window.pageYOffset: document.body.clientHeight: document.documentElement.clientHeight:
window.screenX: document.width:  
window.screenY: document.height:  
window.innerWidth:    
window.innerHeight:    
window.screen.availTop    
window.screen.availLeft    


  而且我痛苦的发现,同一个属性,在不同的浏览器的JS取值是不一样的,甚至是无效的,就算都在IE中不同版本的值也不一样的,W3C的标准就从没被完整执行过,微软丈着本钱厚,肆意修改其定义,而且朝三暮四,同样一个事在版本升级时也搞出不同的标准来,一看开发组群就不是一个娘养的。

 


  就在同一个版本同一浏览器中,标准模式与混杂模式的定义也大不相同,比如document.documentElement.scrollWidth和document.body.scrollWidth,在混杂模式中,后者有效前者无效,在标准模式中前者有效后者无效,直接让人崩溃。无奈之下,把这个参数用JS统一列出来,一个个做实验,这才做成了一个完整的结果。如下表,当然,这只是在标准模式下,混杂模式我一般不用,也没精力去研究了。


  

  IE6 IE8 FF OPREA CHROME
window.screen.width: 屏幕宽
window.screen.height: 屏幕高
window.screen.availWidth: 窗口最大化后宽度
window.screen.availHeight: 窗口最大后的高度
window.scrollMaxX:   最大横向滚动幅度,即BODY加左MARGIN减去窗口显示区不含滚动棒的宽度后的值  
window.scrollMaxY: 最大纵向滚动幅度,即BODY加上下MARGIN减去窗口显示区不含滚动棒的高度后的值
window.scrollX: 左滚动值
window.scrollY: 上滚动值
window.pageXOffset: 左滚动值
window.pageYOffset: 上滚动值
window.screenX: 窗口左上角离屏幕左上角横向距离 标准模式下均为0. 窗口左上角离屏幕左上角横向距离
window.screenY: 窗口左上角离屏幕左上角纵向距离 标准模式下均为0. 窗口左上角离屏幕左上角纵向距离
window.innerWidth: 窗口显示区宽含滚动棒,同IE8的document.documentElement.offsetWidth:
window.innerHeight: 窗口显示区高含滚动棒,同IE的document.documentElement.offsetHeight:
window.screen.availTop   窗口最大化后的window.screenX:   窗口最大化后的window.screenX:
window.screen.availLeft 窗口最大化后的window.screenY: 窗口最大化后的window.screenY:
document.body.offsetWidth: 窗口显示区不含滚动棒宽度减去左右margin值后的数字/BODY宽度两者取大值 窗口显示区不含滚动棒宽度减左右MARGIN,最小为0
document.body.offsetHeight: BODY高度,不含滚动棒与MARGIN
document.body.scrollWidth: 同IE6的document.body.offsetWidth: 同IE8,FF,oprea的document.body.offsetWidth: 浏览器窗口的宽度,最小值取BODY加MARGINLEFT值,不含滚动棒
document.body.scrollHeight: 同IE,FF,OPREA的document.body.offsetHeight: BODY高度加MARGIN值/窗口显示区高度不含滚动棒取两者取其大
document.body.scrollLeft: 标准模式下均为0. 左滚动值
document.body.scrollTop: 上滚动值
document.body.clientTop: 标准模式下均为0.
document.body.clientLeft: 标准模式下均为0.
document.body.clientWidth: 窗口显示区不含滚动棒宽度/BODY宽度两者之最大值 同IE8,FF,oprea的document.body.offsetWidth:
document.body.clientHeight: 同IE,FF,OPREA的document.body.offsetHeight:
document.documentElement.offsetWidth: 窗口显示区的宽度,含滚动棒 浏览器窗口的宽度,不含滚动棒
document.documentElement.offsetHeight: 窗口显示区的高度,含滚动棒 BODY高度加MARGIN
document.documentElement.scrollWidth: 窗口显示区宽度不含滚动棒/BODY加两边MARGIN两者中大值 窗口显示区不含滚动棒宽度/BODY宽度加左GARGIN值两者中最大值
document.documentElement.scrollHeight: BODY的高度 BODY加上下MARGIN值 窗口显示区不含滚动棒高度/body加上下MARGIN两者中最大值 同IE8
document.documentElement.scrollLeft: 左滚动值 0
document.documentElement.scrollTop: 上滚动值 0
document.documentElement.clientTop: 2 标准模式下均为0.
document.documentElement.clientLeft: 2 标准模式下均为0.
document.documentElement.clientWidth: 窗口显示区的宽度,不含滚动棒
document.documentElement.clientHeight: 窗口显示区的高度,不含滚动棒
document.width:   同IE8,FF,oprea的document.body.offsetWidth:   同document.body.scrollWidth
document.height: 同IE8,FF,oprea的document.body.offsetWidth: document.body.s