междоменная коммуникация iframe: не может прочитать src ребенка - PullRequest
1 голос
/ 07 июня 2011

У меня есть iframe, и я хочу отправить сообщение из iframe в его родительское окно. Вот что делает ребенок

window.location += '#do_install||something';

Это то, что делает родитель ($ is jquery)

setTimeout('alert($("iframe#main_store_frame").attr("src"));', 5000);

Я пробовал много других способов обнаружить это изменение местоположения, но все они терпят неудачу. Все они показывают мне начальное местоположение iframe, а не новое с добавлением «#do_install || что-то». Пожалуйста, дайте мне знать, что я делаю неправильно.

1 Ответ

1 голос
/ 07 июня 2011

Для этого есть несколько вариантов:

1 Используйте window.name (в iframe) и iframe.contentWindow.name (в родительском).Идея состоит в том, чтобы на самом деле изменить ваше имя iframe (из вашего iframe)

IFRAME: window.name = "new value"

и использовать iframe.contentWindow.name из родительского окна (в то время как «iframe» является вашимiframe object)

PARENT: console.log(iframe.contentWindow.name)

Вы можете прочитать следующую статью для дополнительной информации

2 Использовать HTML 5 window.postMessage.Вы можете найти пример здесь .

. Идея состоит в том, чтобы установить соединение между родительским окном и фреймами при использовании списка доступа по доменам.Если вы используете jQuery, вы можете использовать jQuery exmaple

Еще один проект xAuth"- это открытая платформа для распространения аутентифицированных пользовательских сервисов через Интернет."

для суммирования

если у вас есть возможность контролировать как родительский элемент, так и iframes (по крайней мере, попросите своих партнеров представить свой код на своей странице), вы получите разрешение на междоменную связь

** извините за то, что здесь не напечатаны примеры, они слишком длинные.

надеюсь, я помог.

...