2013-09-24 96 views
0

我有一個固定寬度(800px)的盒子,裏面充滿了nicEdit的內容。查找包含文本的元素的高度

我需要知道的那些把盒子裏面的內容的高度,如果我算也不會長文本或圖像或不同的字體大小工作的行數...

我需要找到高度來設置框的高度不會顯示滾動條並且不會高於內容。

<div style="width: 800px; overflow: hidden"><?= $contentbyuser; ?></div> 

這個「頁面」將被顯示成一個iFrame與像代碼:

<iframe style="width: 800px;height:???px;" src="page.php"></iframe> 

我如何才能找到的高度設置爲iframe的JavaScript和/或jQuery的?

+0

您是否有示例代碼? – Brian

+0

發佈您的代碼,以便我們可以看到您在說什麼,請。 – Sadiq

+0

箱子裏面的隨機內容,使箱子高到足以顯示所有的內容,你需要什麼代碼? – PurpleFoxy

回答

1

您可以創建一個虛擬元素,插入HTML到它,然後檢查其高度。

//create dummy 
var $dummy = $('<div />').css({ position : 'absolute', left : -9999, width : 800 }).html(randomTextandImages); 

//add dummy to the DOM 
$("body").append($dummy); 

//get the height of the dummy 
var theHeight = $dummy.height(); 

//at this point we can remove the dummy from the DOM 
$dummy.remove(); 

//set the height of the iframe 
$("iframe").height(theHeight); 

注意,虛設的元素應該應用到它作爲您的定期集裝箱相同的CSS,使之呈現相同的。字體屬性特別重要(例如字體大小,字體重量,行高等)。

將位置設置爲absolute並給出大的負左屬性意味着這將發生在屏幕外,因此用戶不會看到它發生。

此外,我不記得過去是否會遇到這個問題,但如果您的高度爲零,那麼獲取虛擬身高的代碼應放在一個短的超時,所以虛擬物可以在獲取其高度之前呈現。

+0

我正在嘗試,謝謝。 – PurpleFoxy

0

根據內容設置div的高度爲自動。然後你就可以在你的JavaScript做到這一點:

$("div").html(randomTextandImages); 
var height = $('div').height();  // Give this to whoever will be using the iframe 
相關問題