2012-05-21 6 views
1

Я добавил iFrame в div. Я меняю высоту div на событие загрузки iframe (используя jQuery).HTML iframe change height event

Проблема в том, что в iframe имеется много текстовых полей, и когда пользователь вводит большие объемы текста, они становятся многострочными (в начале они представляют собой однострочные текстовые поля). Итак, поскольку новые строки добавлены, высота iframe расширяется, но событие load iframe не понимает этого.

Каков наилучший способ (думать о производительности) изменить высоту div, когда - из-за какого-то события - изменяется высота iframe?

Я рассмотрел привязку к функции обмена для каждого текстового поля, но мне это не нравится, потому что иногда у меня будут функции, уже привязанные к этим полям?

+0

И что? Вы можете добавить несколько прослушивателей событий для одного и того же типа событий к одному элементу. Вы не используете трагически устаревший метод «onchange», не так ли? – MaxArt

+0

@MaxArt, я надеюсь, что есть более хороший способ сделать это. Я знаю, что я могу связать столько, сколько мне нравится, событий в один элемент, но я не думаю, что это хорошее решение, ведущее к хорошей производительности. – gotqn

+0

@Joro Действительно ли вы протестировали его работу? Сколько текстовых полей делает iframe в любом случае? Возможно, вы можете прослушать событие «изменить размер» тела iframe. – MaxArt

ответ

1

Try:

$("#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мс, это не будет иметь серьезное влияние на производительность. Также вы можете включить этот код ON onfocus и отключить его onblur.

+0

Я не думаю, что проверка размера iframe на каждую половину секунды - хорошая идея, но я попробую это. Благодарю. – gotqn