2011-12-21 2 views
1

У меня есть iframe, загружаемый Fancybox. Внутри iframe я загружаю jQuery, чтобы я мог $('html').height(); получить правильную высоту фактического содержимого в iframe.Автоматическое изменение размера Fancybox с iframe для содержимого

  • В FF, это, кажется, позволяет мне изменить размер IFRAME (и FancyBox) соответственно

  • В хроме, это значение сообщается примерно 5px 20px в короткий фактической высоты содержимого.

  • В IE 8 значение, о котором сообщается, является начальной высотой открываемого окна fancybox, даже при последующих обновлениях (iframe).

Есть ли лучший способ получить высоту содержимого Iframe, так что я могу изменить размер FancyBox оболочки, так что пользователь не видит скроллбар?

ответ

0

Версия 1.3 FancyBox имеет метод изменения размера, вы можете использовать, чтобы соответствовать Iframe на его содержание:

$.fancybox.resize(); 

Если вспоминание служит, это имеет побочный аффект перегрузочные содержимое IFRAME. Если вы обнаружите, что это так, попробуйте использовать высоту тега тела, чтобы вместо этого изменить размер fancybox.

var height = $('body').height(); 
$('#fancybox-inner, #fancybox-wrap').height(height); 
+0

'$ .fancybox.resize()', как вы предлагаете, перезагружает содержимое iFrame. '$ ('body'). height()' не принимает во внимание тот факт, что iframe установил высоту, что заставляет 'body' сохранять эту высоту. –

0

Вы ищете

$(document).height() 

Я попытался с помощью $ ('HTML'). Высота(), и я получил странные значения.

+0

'$ (document) .height()' по крайней мере для меня, возвращает те же значения, что '$ ('html'). Height()' does, так что это не сработает :( –