四種瀏覽器對 document.body 的 clientHeight、offsetHeight 和 scrollHeight 的解釋。
這四種瀏覽器分別為IE(Internet Explorer)、NS(Netscape)、Opera、FF(FireFox)。
clientHeight
大家對 clientHeight 都沒有什么異議,都認(rèn)為是內(nèi)容可視區(qū)域的高度(在后臺調(diào)整iframe的大小時(shí),通常不用這個(gè),而是用scrollHeight ,即整個(gè)網(wǎng)頁內(nèi)容的高度),也就是說頁面瀏覽器中可以看到內(nèi)容的這個(gè)區(qū)域的高度,一般是最后一個(gè)工具條以下到狀態(tài)欄以上的這個(gè)區(qū)域,與頁面內(nèi)容無關(guān)。
offsetHeight
IE、Opera 認(rèn)為 offsetHeight = clientHeight + 滾動(dòng)條 + 邊框。
NS、FF 認(rèn)為 offsetHeight 是網(wǎng)頁內(nèi)容實(shí)際高度,可以小于 clientHeight。
scrollHeight(自適應(yīng)時(shí)候經(jīng)常用到)
IE、Opera 認(rèn)為 scrollHeight 是網(wǎng)頁內(nèi)容實(shí)際高度,可以小于 clientHeight。
NS、FF 認(rèn)為 scrollHeight 是網(wǎng)頁內(nèi)容高度,不過最小值是 clientHeight。
簡單地說
clientHeight 就是透過瀏覽器看內(nèi)容的這個(gè)區(qū)域高度。
NS、FF 認(rèn)為 offsetHeight 和 scrollHeight 都是網(wǎng)頁內(nèi)容高度,只不過當(dāng)網(wǎng)頁內(nèi)容高度小于等于 clientHeight 時(shí),scrollHeight 的值是 clientHeight,而 offsetHeight 可以小于 clientHeight。
IE、Opera 認(rèn)為 offsetHeight 是可視區(qū)域 clientHeight 滾動(dòng)條加邊框。scrollHeight 則是網(wǎng)頁內(nèi)容實(shí)際高度。
同理
clientWidth、offsetWidth 和 scrollWidth 的解釋與上面相同,只是把高度換成寬度即可。
iframe常用的高度調(diào)整的方法:
一:自己曾經(jīng)寫的iframe自適應(yīng)方法:
function setHeightByAjax(){
var h=top.mainIframe.document.getElementById("mainInfos");//某一個(gè)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);
}
三:一般在父頁面寫下這個(gè)函數(shù),只需在子頁面調(diào)用即可:
function setIframeHeight(h){
var mw=$("#mainIframe").width();
$("#mainIframe").height(h);
$("#mainIframe").width(mw);
}