Как мне получить innerHTML iframe?

#javascript #iframe #innerhtml

#javascript #iframe #innerhtml

Вопрос:

У меня большая проблема. 🙁 Я пытаюсь получить iFrame innerHTML, чтобы поместить его в div innerHTML. Я перепробовал все, что нашел в Google. Есть ли какой-нибудь шанс помочь мне с этим? Спасибо!

Комментарии:

1. Имеет ли сайт в iframe тот же домен и порт, что и родительский документ?

2. Да, у них есть. Что я пытаюсь сделать, так это загрузить page2.html или page2.php в div из index.php .

3. Было бы полезно, если бы вы могли показать какой-нибудь пример кода того, что не работает.

Ответ №1:

Я предполагаю, что сайт в iframe не имеет того же домена, протокола и порта, что и его родительский, и, следовательно, к нему невозможно получить доступ.

Это сделано специально. Ознакомьтесь с той же политикой происхождения.

Если вы подключены http://sub.domain.com и хотите получить доступ http://domain.com , вы могли бы использовать…

 document.domain = 'domain.com';
  

Документация @ MDC.

Что касается получения innerHTML , попробуйте…

 var iframe = document.getElementById('iframe'),
    iframeDocument;

if ('contentWindow' in iframe) {
   iframeDocument = iframe.contentWindow;
} else {
   iframeDocument = iframe.contentDocument;
}

var innerHTML = iframeDocument.innerHTML;