2011-01-06 5 views
12

У меня такая проблема. Мне нужно открыть iframe в fancybox (мне нужен iframe из-за того, что мне нужно просматривать ссылки в открытом документе и оставаться в fancybox), , но я хочу поместить содержимое в iframe из переменной, а не через атрибут src (я уже получил контент от AJAX (мне нужно сделать некоторые проверки содержимого, прежде чем поместить его в iframe, поэтому нет способа сделать это вместо запроса AJAX), поэтому мне не нужен еще один запрос).jQuery добавить iFrame с контентом

Fancybox не разрешает использовать атрибут 'content' с 'type': 'iframe'. Поэтому я решил динамически создавать iframe, вставлять в него свой контент и показывать iframe fancybox как обычный блок.

Это как

jQuery('<iframe id="someId"/>').appendTo('body').contents().find('body').append(content); 

И чем

jQuery('<iframe id="someId"/>').fancybox(); 

Но в первой части не работают. Я могу увидеть iframe, который был добавлен на страницу, но без какого-либо контента (у меня есть полная html-страница в содержимом переменной, но когда я пытаюсь добавить только какой-то текст, это тоже не работает).

Что я сделал не так? Может быть, есть еще один способ сделать то, что мне нужно?

Спасибо за советы!

+0

была такая же проблема, не могли бы вы сказать мне, если вы исправили выше вопрос @krasilich –

ответ

3

Что произойдет, если вы разделяете эту линию в двух:

jQuery('<iframe id="someId"/>').appendTo('body'); 
jQuery('#someId').contents().find('body').append(content); 

Затем измените ваш селектор, чтобы быть правильным, прежде чем оно было создание нового IFRAME, не вставляя его в DOM и вызывающего FancyBox на нем, однако это должно работать:

jQuery('#someId').fancybox(); 
+0

я вижу пустой IFRAME в нижней части моего стр. Я поместил в содержание простой текст (var content = 'Text in Iframe'). И ошибок в firebug нет. Тело элемента в iFrame пусто – krasilich

+0

@ krasilich Вы пробовали код, который я предложил? Я отредактировал свой ответ с новым открытием. –

+0

var content = 'Текст в iframe'; jQuery ('