PDA

Просмотр полной версии : Доступ к содержимому iframe через flash


login_flash
19.06.2012, 21:14
Здравствуйте!

Имеется iframe с адресом чужого домена(есть crossdomain.xml с разрешением доступа).
Нужно получить доступ к редактированию DOM iframe через флеш(actionscript ?).

Как это можно реализовать? Возможно?

Буду благодарен.

mooncar
19.06.2012, 21:41
Через ExternalInterface, если не ошибаюсь. С его помощью можно работать с внешними JS-функциями, причем они необязательно должны находится (быть объявлены) на странице, их можно генерировать налету.

login_flash
19.06.2012, 22:02
mooncar, это выходит обычный js, crossdomain.xml. Не пускает политика безопасности.
Если бы через crossdomain.xml...

mooncar
19.06.2012, 22:15
Понятно в общем. Вы пытаетесь обойти политику безопасности браузера (политику "единства происхождения"). Нет, это невозможно без шаманства (типа Ajax-прокси (http://www.cmcons.com/article/ajax_apps_hazards.htm), и в HTML5 вроде есть методы новые, но они должны поддерживаться на стороннем ресурсе).
Ведь что кроссдомен? Он дает возможность флешке взаимодействовать с содержимым со сторонних ресурсов, загружать и как-то использовать. Это адобовская политика безопасности, она напрямую никак не связана с браузерной политикой единства происхождения. То есть, если вас вообще не пускают в iframe, это уже она и есть.
Может быть проще написать парсер и не использовать в iframe url стороннего ресурса?

login_flash
19.06.2012, 22:38
mooncar, я и так имею доступ к коду чужого домена, есть crossdomain.xml с
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>

Но мне нужно встроить html код во фрейм, так как нужна его интерпретация с данного домена.
Это же не обход защиты, ИМХО.

mooncar
19.06.2012, 22:52
Нет, тогда не очень понимаю вас.
Создаете <iframe> и встраиваете код.
Либо, если надо код стороннего ресурса как-то видоизменять, пишите парсер, например на PHP, и делайте встройку.
Или по ссылке выше указаны способы взаимодействия м/у доменами.
Зачем и при чем тут вообще флеш? crossdomain.xml нужен для работы с содержимым внутри флешки со стороннего ресурса. Если кроссдоменник там и лежит, это вовсе не означает, что вы можете как-то управлять встроенным содержимым в iframe - он для другого.
Если же у вас такая задумка - типа флеш как-то должен обработать код со стороннего ресурса и вписать его в родительский фрейм, то тут я вообще не вижу проблем. В этом случае флеш и будет играть роль парсера.