Как вы можете получить доступ к содержимому внешнего iframe через DOM / Javascript? - PullRequest
4 голосов
/ 03 марта 2010

У меня есть страница таким образом:

<html>
    <head></head>
    <body>
        <iframe src="local.html"></iframe>
        <iframe src="http://www.google.com"></iframe>
    </body>
</html>

Я использовал DOM для доступа к первому iframe в качестве теста (node.documentWindow), но когда я пытаюсь выполнить аналогичные действия с внешним iframe, Firebug сообщает, что доступ запрещен.

Я подозреваю, что это для защиты XSS, но есть ли "безопасный" способ импортировать узел, чтобы я мог получить элемент с этой внешней страницы? Есть ли способ изучить «документ как предоставленный» или что-то в этом роде?

Спасибо!

1 Ответ

13 голосов
/ 03 марта 2010

Неа. Междоменная безопасность предотвращает это. Единственный выход - если окружающая страница и iframe находятся в разных поддоменах в одном домене. В этом случае вы можете использовать document.domain .

Это в значительной степени само собой разумеющееся. Представьте себе последствия для безопасности, если бы это было не так. Вы можете создать iframe, содержащий домашнюю банковскую страницу пользователя, и получить его пароль, например, keydown. Существует множество возможностей неправильного использования.

...