Как скопировать содержимое iframe во всплывающее окно?

Есть ли способ скопировать содержимое iframe во всплывающее окно в jQuery?

$(popUpWindow.document).append($('#iframe1').contents());
$(popUpWindow.document).append($('#iframe1').contents().find('body').html()); 

Все они не работают!

Спасибо


person Kyaw Thurein    schedule 30.03.2011    source источник
comment
Указывает ли iFrame на страницу в том же домене? Возможно, вы столкнулись с междоменной безопасностью. Кроме того, если вы собираетесь просмотреть всю страницу, что не так с popup.location = iframe.location?   -  person Brad Christie    schedule 30.03.2011
comment
@Bard ... На самом деле iFrame не указывает ни на какую внешнюю страницу, это просто скрытый iFrame, в котором мы обычно храним html-страницу.   -  person Kyaw Thurein    schedule 30.03.2011
comment
Вы можете найти этот ответ на копировании dom в новое окно полезным .   -  person NT3RP    schedule 31.03.2011
comment
@Nicholas ... на самом деле, моя проблема заключается в получении контента из iFrame   -  person Kyaw Thurein    schedule 31.03.2011
comment
может быть проще разместить html-контент внутри скрытого ‹div› вместо iframe.   -  person CarlosZ    schedule 31.03.2011


Ответы (2)


Если все, что вам нужно сделать, это получить содержимое iframe, вы можете попробовать что-то более низкоуровневое, чем jquery: raw javascript!

var getIframeContent = function (id) {
    var iframe = document.getElementById(id);
    return iframe.contentWindow.document.body.innerHTML;
}

Но я бы предположил, что что-то подобное происходит под капотом в JQuery.

person NT3RP    schedule 31.03.2011

Укажите, какое всплывающее окно вы используете, и что вы имеете в виду под содержимым.

Пример всплывающего окна jquery-ui (диалог)

HTML:

<div id="myDialog" >
  <p>default dialog</p>
</div>

jQuery:

$(function() {
    $( "#myDialog" ).dialog();
    $( "#myDialog p" ).html($("iframe").contents().find("body").html());
}); 
person Manoj    schedule 30.01.2014