【问题标题】:HTML iframe change height eventHTML iframe 更改高度事件
【发布时间】:2012-05-21 13:31:04
【问题描述】:

我已将 iFrame 附加到 div。我正在改变 iframe 加载事件上 div 的高度(使用 jQuery)。

问题是 iframe 中有很多文本字段,当用户输入大量文本时,它们变成了多行(开始时它们是单行文本字段)。因此,由于添加了新行,iframe 高度扩大了,但 iframe 的加载事件并没有捕捉到这一点。

当 iframe 高度因某些事件而改变时,改变 div 高度的最佳方法是什么(考虑性能)?

我考虑过绑定每个文本字段的 onchange 函数,但我不喜欢这样,因为有时我的函数已经绑定到这些字段?

【问题讨论】:

  • 那又怎样?您可以将同一事件类型的多个事件侦听器添加到单个元素。你不会使用可悲的过时的onchange 方法吧?
  • @MaxArt,我希望有更多的好方法来做到这一点。我知道我可以将任意数量的事件绑定到一个元素,但我认为这不是一个能带来良好性能的好解决方案。
  • @Joro 你实际测试过它的性能吗?该 iframe 包含多少文本字段?也许你可以监听 iframe body 的 'resize' 事件。

标签: javascript jquery html iframe


【解决方案1】:

试试:

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

【讨论】:

  • 是的,我已经这样做了。但是当 iframe 的高度动态变化时,我需要更改父元素的高度。
  • 那么以类似的方式,$('#parent_ele_id').height($('#frame_id').height()); 或者将它与上面的代码嵌套/合并,嗯?
【解决方案2】:

您可以将调整大小代码与 setInterval 挂钩,例如 500 毫秒,它不会对性能产生重大影响。 您也可以在 onfocus 上打开该代码并在 onblur 上关闭它。

【讨论】:

  • 我不认为每半秒检查一次 iframe 的大小是个好主意,但我会试试这个。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-23
  • 2013-03-06
  • 1970-01-01
  • 2016-06-17
相关资源
最近更新 更多