Скопировать HTML-контент из iframe в div (ajax)? - PullRequest
6 голосов
/ 22 января 2010

Предположим, у меня в браузере загружен Iframe с <iframe src="test.html">

Могу ли я, используя ajax, загрузить содержимое test.html в div на главной html-странице?

Эта идея - мое решение для того факта, что я на самом деле пытаюсь преодолеть ограничение с помощью отправки ajax удаленным хостам. План состоит в том, чтобы создать динамическую страницу с размером фрейма 0, который отправляет запрос на удаленный хост. Затем, после загрузки страницы (& содержимого iframe), я скопирую содержимое iframe в div с помощью JS.

Советы приветствуются,

Спасибо, Максим.

Ответы [ 5 ]

2 голосов
/ 22 января 2010

Нет, вы не можете.

Когда вы загружаете страницу из другого домена в iframe, она становится недоступной. Вы больше не можете получить доступ к содержимому iframe, так как оно происходит из другого домена.

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

1 голос
/ 22 января 2010

Я уверен, что кто-то исправит меня, если я ошибаюсь, но я считаю, что сценарии за пределами домена ограничены. Ты это пробовал? Вот функция, которая может помочь.

function insertDivFromFrame(divname, framename) {
    var frame = document.getElementById(framename);
    var d = frame.contentWindow || frame.contentDocument;
    if (oDoc.document) {d = d.document;}
    document.getElementById('yourdiv').innerHTML = d.body.innerHTML;
}

Я не уверен, что этот код работает ... см. http://xkr.us/articles/dom/iframe-document/ для получения дополнительной помощи по этому вопросу.

1 голос
/ 22 января 2010

Могу ли я, используя ajax, загрузить содержимое test.html в div на главной html-странице?

Да (поскольку ваш пример имеет относительный URI и находится на том же хосте)…

Эта идея - мое решение для того факта, что я на самом деле пытаюсь преодолеть ограничение с помощью отправки ajax удаленным хостам.

… и нет. Вы все еще не можете прочитать данные с удаленных хостов.

0 голосов
/ 25 января 2010

Если вы напишите php / perl / etc. скрипт для вывода содержимого документа из другого домена, он даст вам доступ к содержимому, так как получившаяся страница будет считаться javascript принадлежащим вашему домену. Если вы не знакомы с какими-либо серверными языками сценариев, я уверен, что вы сможете найти сценарий, который сделает это за вас, выполнив простой поиск в Google.

Удачи.

0 голосов
/ 22 января 2010

... однако вы можете создать запрос AJAX для локального хоста и получить информацию с удаленного сервера (как описано здесь ).

...