我可以看到這個問題已被多次提出,但沒有一個建議的解決方案似乎適用於我正在構建的站點,因此我正在重新打開該線程。我試圖根據內容的高度來設置iframe的大小。包含iframe的頁面和它的源頁面都存在於同一個域中。動態調整iframe的大小
我在以下每個線程試圖提出的解決方案:
我認爲,解決上述不工作,因爲當提及身體.clientHeight製作完成後,瀏覽器並未真正確定文檔的高度。
這裏是我使用的代碼:
var ifmBlue = document.getElementById("ifmBlue");
ifmBlue.onload = resizeIframe;
function resizeIframe()
{
var ifmBlue = document.getElementById("ifmBluePill");
var ifmDiv = ifmBlue.contentDocument.getElementById("main");
var height = ifmDiv.clientHeight;
ifmBlue.style.height = (ifmBlue.contentDocument.body.scrollHeight || ifmBlue.contentDocument.body.offsetHeight || ifmBlue.contentDocument.body.parentNode.clientHeight || height || 500) + 5 + 'px';
}
如果我用火調試調試腳本時,iframe.contentDocument的主要div的客戶高度爲0。另外,body.offsetHieght,&體。 scrollHeight是0.然而,在腳本運行完成後,如果我檢查HTML iframe元素的DOM(使用fire debug),我可以看到body的clientHeight是456,內部div的clientHeight是742.這讓我相信這些值在iframe.onload被觸發時尚未設置。所以,根據上面的每個線程,我將代碼移動到iframe源頁面的body.onload事件處理程序中。該解決方案也沒有工作。
任何幫助,你可以提供非常感謝。
感謝,
CJ
有腳本的更新版本在這裏:http://www.dynamicdrive.com/dynamicindex17/iframessi2.htm – 2010-03-16 19:52:19