就像標題所說,我試圖設置一個隱藏的iframes高度來匹配它的內容,但我一直得到非常不正確的高度。隱藏iframe的內容高度
我正在預加載一個新的(隱藏的)帶有內容的iframe,我需要在iframe設置爲由用戶顯示之前設置高度。
我一直在這樣做的框架,可以很容易地看到很長一段時間,但現在,當它們被加載時,框架被隱藏起來。我已經瀏覽過SO的每一個角落,並嘗試過很多基本功能的變體,但沒有運氣。
我試着離開iframe可見,設置高度然後隱藏它,但幀的快速閃光是沒有吸引力。有沒有一種方法,我只是不知道從隱藏的iframe中獲取ACTUAL內容高度?
打開jquery或純js的想法。以下是我一直在使用的兩個最常見的示例。
對此的任何建議將不勝感激。先謝謝你。
// example 1
function resizeIframe(obj){
obj.style.height = 0;
obj.style.height = obj.contentWindow.document.body.scrollHeight + 'px';
}
portalDiv.append('<iframe src="" scrolling="no" style="display:none;"></iframe>');
$('iframe').last().attr('src', '/content.php').load(function() {
resizeIframe(this);
// should return 363px
// returns 1531px :(
});
// example 2
portalDiv.append('<iframe src="" scrolling="no" style="display:none;"></iframe>');
$('iframe').last().attr('src', '/content.php').load(function() {
var contentHeight = $(this).contents().find(".container").height();
$(this).height(contentHeight+"px")
// should return 363px
// returns 1531px :(
});
嘗試使用'style =「visibility:hidden;」'而不是'display:none;''。這將呈現iframe,就像它有佈局一樣,所以你的高度/寬度計算應該是準確的。 – murdock
謝謝,我會給它一個鏡頭。可見度是否與ie8一起工作? – xxstevenxo
是的,它已經成爲CSS規範多年的一部分。它甚至適用於IE6 :) – murdock