Как мне получить содержимое <iframe>, содержащее другой сайт? - PullRequest
0 голосов
/ 24 июня 2009

Я могу получить атрибут 'src' при использовании .src. Но я не могу получить содержимое, которое находится в другом домене. Это проблема безопасности браузера?

jQuery(document).ready(function() {
    var elementTest = $("iframe:first").get(0);
    alert(elementTest.src);  // ok
    alert(elementTest.innerHTML);  // not ok
});

Ответы [ 3 ]

7 голосов
/ 24 июня 2009

Да, это ограничение против проверки содержимого и выполнения кода в этом внешнем домене известно как политика того же происхождения .

1 голос
/ 24 июня 2009

То, что вы пытаетесь (в некотором смысле), является междоменной связью. Это не будет работать обычным способом, который вы пробовали (из-за политики того же происхождения, что и altCognito), но есть некоторые решения, если вы контролируете другой сервер. Проверьте эту статью:

http://msdn.microsoft.com/en-us/library/bb735305.aspx

1 голос
/ 24 июня 2009

Свойство, которое вы ищете, является contentWindow.

Попробуйте этот код:

alert(elementTest.contentWindow.document.innerHTML);

Это аналог текущего оконного объекта, но для iframe. так что вы также можете сделать это:

alert(elementTest.contentWindow.location.href);

Редактировать : Ах, я пропустил тот факт, что у вас есть страница из другого домена в iframe. Этот метод не будет работать для вас из-за ограничений встроенного браузера для одного домена (вашего родительского окна) и доступа к информации в другом домене (ваш iframe).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...