Вложенная междоменная связь iframe - PullRequest
1 голос
/ 17 июля 2009

Вот два случая: Прописные как один домен, а строчные как другой 1. Окно поддержки A содержит iframe b, а b содержит iframe C, A & C в одном домене (более высокий уровень конфиденциальности), а b в другом. Есть ли прямой способ связи между A & C, односторонним или двухсторонним движением. 2. Предположим, что A содержит iframe b и iframe c, A находится в одной области, а B & C - в другой, точно такой же вопрос, как указано в первом случае.

Я буду очень признателен за ваш ответ, будет лучше, если с некоторыми кодами JavaScript Спасибо

Ответы [ 2 ]

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

Да , если они намеренно сотрудничают. HTML5 включает в себя API postMessage для этой цели и реализован в IE8, FF3.5, Chrome, Opera и т. д. Для браузеров нижнего уровня можно использовать «хак» под названием Fragment Messaging. Если вы используете Flash, вы можете использовать Flash Local каналы связи.

3 голосов
/ 17 июля 2009

Нет . Связь на стороне клиента между кадрами в разных доменах невозможна из-за той же политики происхождения .

Если бы это было возможно, вы могли бы делать такие вещи, как загрузка банковского веб-сайта во фрейм, который заполняет все окно, и опросить его, чтобы узнать, набрал ли пользователь что-нибудь в полях имени пользователя и пароля.

Если вы хотите общаться между доменами, тогда есть два подхода. Вам нужно сделать HTTP-запрос для достижения любого из них.

  1. Передача информации в URL при загрузке страницы
  2. Для информации, загруженной с использованием элемента <script>, любой код в загруженном файле JS из удаленного домена будет выполняться на странице с элементом <script>.

Вы можете объединить два подхода:

<script 
  type="text/javascript" 
  src="http://example.com/script.cgi?data=foo;more_data=bar">
</script>

См. JSON-P .

...