Доступ к родительской переменной окна из междоменного iframe - PullRequest
1 голос
/ 10 сентября 2010

Внутри http://mydomain1.com/index.html

<html>
<body>
<script type="text/javascript">
  var a = 1;
</script>
<iframe src="http://domain2.com/test2.html"></iframe>
</body>
</html>

Внутри http://domain2.com/test2.html

<script type="text/javascript">
  alert(parent.a); // forbidden
</script>

Есть ли обходные пути?

Ответы [ 3 ]

2 голосов
/ 10 сентября 2010

Если вам нужно связаться с другим фреймом, вы можете использовать postMessage. Это доступно только в современных браузерах (IE8, FF3, Opera 9, Chrome).

Из-за соображений безопасности вы не можете иметь полный доступ к междоменным фреймам ( Одинаковая политика происхождения ).

1 голос
/ 08 января 2013
  • Чтение данных между доменами представляет угрозу безопасности, поскольку данные в другом домене могут содержать конфиденциальную информацию (например, токен аутентификации).
  • Возможно публиковать данные в другом домене.Поэтому в этом случае, возможно, вы можете попробовать:

    • domain2.com / test2.html отправляет сообщение на mydomain1.com/index.html с просьбой указать значение «a».
    • mydomain1.com / index.html при получении сообщения можно ответить, отправив значение «a» на domain2.com/test2.html
  • Это означает, что вам нужнонастроить прослушиватели событий в обоих доменах для получения сообщений, отправленных из другого домена.

0 голосов
/ 10 сентября 2010

из iframe вы можете получить доступ к родительским узлам DOM, но вы не можете сделать это с переменными родительского окна.

...