Это можно сделать только в том случае, если iframe и документ, на котором запущен ваш javascript, имеют одинаковые origin
(тот же домен, порт, протокол, несколько других вещей).Это функция безопасности, называемая одинаковой исходной политикой , реализованная всеми основными браузерами.Вы не можете обойти это.
Основанием для этой функции является предотвращение следующего (очень упрощенного) сценария.
- Вы переходите на ненадежный сайт blahblah.com
- Сайт создает невидимый
iframe
и указывает на вашу домашнюю страницу Amazon. - Вы вошли в систему с учетными данными из своего браузера, и blahblah.com продолжает кражу всей вашей личной информации.
Реализованная политика в целом обобщается как
Запросы от одного источника могут выполнять код из другого источника и отображать его, но не могут программно манипулировать или проверять их содержимое.
Таким образом, ваш код может
- Откройте
iframe
, но не сможете просмотреть его содержимое - Включите изображения из Google на своей странице, но не сможете прочитать пиксели или отправить изображение обратно на сервер
- Выполнитьскрипт из cdn от Google.com, но он не может просматривать все, что делает код, и не может получить сам код в виде строки.
Использование того факта, что это несколько отличается от программыправильно большая часть того, что делают веб-хакеры.