Прошло время этого вопроса, но вот другое решение:

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

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-страница с переменным содержимым, но когда я пытаюсь добавить только какой-то текст, это тоже не работает).

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

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

 Anil kumar30 авг. 2013 г., 07:05
Если бы у вас была такая же проблема, подскажите, пожалуйста, исправили ли вы вышеуказанную проблему

Ответы на вопрос(3)

как это

<script type="text/javascript">
$(function(){
$('<iframe id="someId"/>').appendTo('body');
$('#someId').contents().find('body').append('<b>hello sajjad</b>');
});
</script>

<iframe id="someId"></iframe>
 Jaider13 февр. 2013 г., 00:11
Ссылка по теме:stackoverflow.com/questions/1591135/...

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

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

jQuery('#someId').fancybox();
 Marcus Whybrow06 янв. 2011 г., 13:58
Фантастика! Что случилось. Кажется, могут быть и другие проблемы. Проверьте, доступен ли jQuery, просто выполнив строкуjQuery в firebug, если доступно, если должно вернуть функцию.
 krasilich06 янв. 2011 г., 14:09
И это то, что случилосьimg232.imageshack.us/f/screenshotylj.png Итак, jQuery отлично работает, потому что создает iframe и добавляет его в тело. Но тело iframe все еще без содержания
 Marcus Whybrow06 янв. 2011 г., 13:49
@krasilich Вы пробовали код, который я предложил? Я отредактировал свой ответ новым открытием.
 krasilich06 янв. 2011 г., 13:54
var content = 'Текст в iframe'; jQuery ('<iframe id = "someId" />'). appendTo ('body') jQuery ('# someId'). contents (). find ('body'). append (content); JQuery ( '# someId') FancyBox (). Это то, что я запускаю в консоли Firebug
 krasilich06 янв. 2011 г., 13:41
Я вижу пустой фрейм в нижней части моей страницы. Я вставляю в контент простой текст (var content = 'Text in Iframe'). И нет ошибок в firebug. Тело элемента в iFrame пусто

var ifrm = document.createElement("iframe");
document.body.appendChild(ifrm);
ifrm.id = "someId"; // optional id
ifrm.onload = function() {
    // optional onload behaviour
}
setTimeout(function() {
    $(ifrm).contents().find("body").html(content);
}, 1);

Ваш ответ на вопрос