2011-05-11 142 views
0

我遇到了調整iframe大小以適應frame'd頁面內容的問題。我使用了我在這裏發現的一個建議來動態調整框架大小。JavaScript動態調整iframe高度問題

在我frame'd網頁我有

<body onload='parent.resizeIframe(getDocHeight())'> 

function getDocHeight() { 
var D = document; 
alert(D.URL); 
return Math.max(
    Math.max(D.body.scrollHeight, D.documentElement.scrollHeight), 
    Math.max(D.body.offsetHeight, D.documentElement.offsetHeight), 
    Math.max(D.body.clientHeight, D.documentElement.clientHeight) 
); 

}

,並在頁面包含我有這個

function resizeIframe(newHeight) { 
    var showsFrame = document.getElementById('frm'); 
    showsFrame.style.height = parseInt(newHeight) +'px'; 
} 

的功能是越來越每個幀正確調用的iframe 'd頁面,但由於某種原因,傳遞的'newHeight'參數保持最大高度值。例如,如果我有兩個frame'd頁面,一個滾動高度爲300px,另一個500px。當我第一次點擊我的鏈接加載300px頁面時,它工作正常,但是如果我點擊鏈接到500px頁面,然後嘗試返回到300px頁面,'newHeight'的值仍然爲500.任何想法? TIA

回答

0

與jQuery

  function resizeIframe(newHeight) { 
       $('#iframeId').attr('height',newHeight); 
           or 
       $("#frameId").height(newHeight); 
      } 
+0

感謝您的回覆,但問題是參數'newHeight'被錯誤地從孩子(frame'd)頁面傳遞。這不是設置父框架高度的問題。到我的父頁面的價值是(出於某種原因)卡住了它的子頁面的最大價值。 – prem1er 2011-05-11 14:24:06

1

試試吧,我發現我在爲別人正在經歷同樣的事情的問題。由於我的框架頁面沒有太多內容,scrollHeight報告了整個文檔的長度,並且不會削減我的內容停止的地方。我沒有試圖計算scrollHeight,而是簡單地查找了我正在尋找的正確高度的offsetHeight。 Firebug是一個很好的工具,可以檢查每個頁面的DOM並查看每個屬性的值,而無需編寫調試消息。我把這一行放在每一個frame'd頁

<body onload='parent.resizeIframe(getDocHeight())'> 

和在一個單獨的js文件我有這段代碼來計算高度。

function getDocHeight() { 
var D = document; 
return Math.max(
    Math.max(D.body.offsetHeight, D.documentElement.offsetHeight), 
);