2012-05-21 38 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