2012-11-15 46 views
0

我有一個從我的網站加載頁面的iframe,我需要根據iframe內容的高度動態設置頁面的中心位置,並且我沒有使用我正在使用的代碼的問題除非iframe內容的高度永遠不會返回低於內容變小(如果有意義)的值的值。如何獲取iframe內容更改的高度?

js可以識別內容高度何時增長,但不會在收縮時收縮。

E.g.如果我有一個400像素高的頁面,然後一些內容動態更改爲420像素,我的代碼會識別出它是420像素高,但如果它更改爲350像素,例如,我的代碼仍然會將其視爲420像素高。我該如何解決?

代碼:

function place() 
{ 
    var w = $(window).width(); 
    w-=1000; 
    w/=2; 
    if(w<12) 
    w = 12; 
    $("#div").css("left",""+w+"px"); 
    $("#closeDiv").css("left",""+(w-12)+"px"); 

    var h = $(window).height(); 
    var ifh = document.getElementById("inner").contentWindow.document.body.scrollHeight; 
    document.title = ifh; 
    h -= ifh; 
    h /= 2; 
    if(h < 20) 
    h = 20; 
    $("#div").css("top",""+h+"px"); 
    $("#div").css("height",""+ifh+"px"); 
    $("#closeDiv").css("top",""+(h-12)+"px"); 
} 

文檔標題繼續顯示420PX,甚至當我知道內容是少一些。 .offsetHeight發生同樣的問題。

感謝您的幫助!

解決方案Update

好了,所以我用我標記爲解決這個問題,因爲我沒有使用它,它的功勞幫助我解決這個問題的答案的代碼,但實際問題在這裏涉及的是我的iframe的高度設置爲容器盒的100%只要我將其設置爲99%,就可以解決問題。不知道爲什麼......但嘿!

非常感謝您的幫助!

+0

可能重複http://stackoverflow.com/questions/525992/resize-iframe-height-根據內容的高度它 –

+0

這不是一個重複的問題,因爲這是問如何得到我已經有的:) – David

+0

有趣的解決方案。想知道頁面代碼是什麼樣的 – SpYk3HH

回答

0

試着這麼做:

var iHeight; 
if ($("iframe").length > 0) iHeight = $($("iframe")[0].contentDocument || $("iframe")[0].contentWindow.document).height(); 

雖然良好的老式電話ELE應該工作:

var iHeight; 
if ($("iframe").length > 0) iHeight = $("iframe").height(); 
+0

同樣的問題。它可以識別iframe內容的高度何時增長,但不會在何時縮小。 – David