2012-05-21 41 views
1

我已將iFrame附加到div。我正在改變iframe加載事件的div高度(使用jQuery)。HTML iframe更改高度事件

問題是,在iframe中有很多文本字段,並且當用戶輸入大量文本時,它們變成多行(在開始時它們是一行文本字段)。所以,由於添加了新行,iframe的高度會擴大,但iframe的加載事件無法解決此問題。

當 - 由於某些事件 - iframe高度發生變化時,改變div高度的最佳方式(考慮性能)是什麼?

我已經考慮綁定每個文本字段的change函數,但我不喜歡這樣,因爲有時我會有已經綁定到這些字段的函數?

+0

那又如何?您可以將相同事件類型的多個事件偵聽器添加到單個元素。你不使用過時的'onchange'方法,是嗎? – MaxArt

+0

@MaxArt,我希望有更好的方法來做到這一點。我知道我可以將盡可能多的事情綁定到一個元素上,但我認爲這不是一個很好的解決方案,可以提高性能。 – gotqn

+0

@Joro你真的測試過它的性能嗎?無論如何,iframe包含多少文本字段?也許你可以聽iframe body的'resize'事件。 – MaxArt

回答

1

嘗試:

$("#frame_id").height($("#frame_id").contents().find("html").height()); 
+1

是的,我已經這樣做了。但是,當Iframe的高度變化時,我需要更改父元素的高度。 – gotqn

+0

然後以類似的方式,'$('#parent_ele_id')。height($('#frame_id')。height());'或嵌套/合併它與上面的代碼,是吧? – Vishal

+0

或[此](http://stackoverflow.com/a/4834994/1052356)答案可能對您有所幫助! – Vishal

0

你可以連接大小調整代碼到一個setInterval的使用可以說500毫秒,它不會對性能產生嚴重影響。 您也可以將onCocus上的該代碼打開並關閉onblur。

+0

我不認爲每半秒檢查一次iframe的大小是個好主意,但我會試試這個。謝謝。 – gotqn