四种浏览器对 document.body 的 clientHeight、offsetHeight 和 scrollHeight
的解释。
这四种浏览器分别为IE(Internet Explorer)、NS(Netscape)、Opera、FF(FireFox)。
clientHeight
大家对 clientHeight
都没有什么异议,都认为是内容可视区域的高度(在后台调整iframe的大小时,通常不用这个,而是用scrollHeight ,即整个网页内容的高度),也就是说页面浏览器中可以看到内容的这个区域的高度,一般是最后一个工具条以下到状态栏以上的这个区域,与页面内容无关。
offsetHeight
IE、Opera 认为 offsetHeight = clientHeight + 滚动条 + 边框。
NS、FF 认为 offsetHeight 是网页内容实际高度,可以小于 clientHeight。
scrollHeight(自适应时候经常用到)
IE、Opera 认为 scrollHeight 是网页内容实际高度,可以小于 clientHeight。
NS、FF 认为 scrollHeight 是网页内容高度,不过最小值是 clientHeight。
简单地说
clientHeight 就是透过浏览器看内容的这个区域高度。
NS、FF 认为 offsetHeight 和 scrollHeight 都是网页内容高度,只不过当网页内容高度小于等于 clientHeight
时,scrollHeight 的值是 clientHeight,而 offsetHeight 可以小于 clientHeight。
IE、Opera 认为 offsetHeight 是可视区域 clientHeight 滚动条加边框。scrollHeight
则是网页内容实际高度。
同理
clientWidth、offsetWidth 和 scrollWidth 的解释与上面相同,只是把高度换成宽度即可。 iframe常用的高度调整的方法: 一:自己曾经写的iframe自适应方法: function setHeightByAjax(){ var h=top.mainIframe.document.getElementById("mainInfos");//某一个div的高度 var height=h.offsetHeight; top.setIframeHeight(height+40); } 二:常用的方法: function seth(){ var thisheight =document.documentElement.scrollHeight;//为了兼容ie var main = $(window.parent.document).find("#mainIframe"); main.height(thisheight-30);} 三:一般在父页面写下这个函数,只需在子页面调用即可: function setIframeHeight(h){ var mw=$("#mainIframe").width(); $("#mainIframe").height(h); $("#mainIframe").width(mw); } |
|
来自: 走墨 > 《java 个人总结》