动态取得当前页面的高度(适应IE6,7,8,firefox,chrome等)

/**
* Description:重新设置父IFRAME的高度
* Author: roger
* Email: 
* @param: 无
**/
function reSizeParentIframe(special){
var realHeight=0;
if (navigator.userAgent.indexOf("Firefox")>0||navigator.userAgent.indexOf("Mozilla")>0||navigator.userAgent.indexOf("Safari")>0) { // Mozilla, Safari, ...
realHeight=window.document.documentElement.offsetHeight + 2;//firefox中HTML和IE中计算不一样,它四舍五入了,所以要加上1才能
} else if (navigator.userAgent.indexOf("MSIE")>0) { // IE
 var bodyScrollHeight = window.document.body.scrollHeight + 21;//取得body的scrollHeight
 var elementScrollHeight = window.document.documentElement.scrollHeight + 1;//取得documentElement的scrollHeight
 if(special){
 realHeight = bodyScrollHeight;
 }else{
 realHeight = Math.max(bodyScrollHeight,elementScrollHeight);//取当中比较大的一个
 }
}else{//其他浏览器
realHeight=window.document.body.scrollHeight + window.document.body.clientHeight + 1;
}
if(realHeight<400){
realHeight = 400;
}
try{
if(window.parent.document){
if($("#realIframe",window.parent.document).is("iframe")){
$("#realIframe",window.parent.document).height(realHeight);
}
}else{
var localIframe = document.getElementById("localIframe");
var hashurl = CFG.sysReSizeUrl+"?timeStr="+getNowTime()+"#"+realHeight;
localIframe.src = hashurl;
};
}catch(e){
var localIframe = document.getElementById("localIframe");
var hashurl = CFG.sysReSizeUrl+"?timeStr="+getNowTime()+"#"+realHeight;
localIframe.src = hashurl;
}
}

下面简单的整理一下在各浏览器下取得高度和宽度方法的意思

网页可见区域宽: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 
窗口的文档显示区的高度:window.innerheight  
窗口的文档显示区的宽度:window.innerwidth

HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth

scrollHeight: 获取对象的滚动高度。
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth:获取对象的滚动宽度
offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度
offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置
offsetTop:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置
event.clientX 相对文档的水平座标
event.clientY 相对文档的垂直座标
event.offsetX 相对容器的水平坐标
event.offsetY 相对容器的垂直坐标
document.documentElement.scrollTop 垂直方向滚动的值
event.clientX+document.documentElement.scrollTop 相对文档的水平座标+垂直方向滚动的量

IE,FireFox 差异如下:
IE6.0、FF1.06+:
clientWidth = width + padding
clientHeight = height + padding
offsetWidth = width + padding + border
offsetHeight = height + padding + border

IE5.0/5.5:
clientWidth = width - border
clientHeight = height - border
offsetWidth = width
offsetHeight = height
(需要提一下:CSS中的margin属性,与clientWidth、offsetWidth、clientHeight、offsetHeight均无关)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值