Как отправить сообщение в JS на конкретный скрипт в iframe в другом домене

0

У меня iframe B в iframe A вот так:

<iframe id="receiver">
 <script>
  top.getElementById("sender").addEventListener('message' receiveMessage, false);
  function receiveMesage(evt)
  {
   do something
  }
 </script>
 <iframe id="sender" src="SenderHtml">
</iframe>

И в SenderHtml у меня есть:

 <script>
    top.postMessage("data, '*');

 </script>

Во-первых, я не могу заставить его работать правильно. Но что более важно, iframe "приемник" может быть на странице с гораздо большим количеством данных, как я могу гарантировать, что никто другой не поймает данные, отправленные на него? Я не контролирую остальные данные на своей странице. Могу ли я передать сценарий в SenderHtml для отправки только в кадр "приемник" по идентификатору? Еще один аспект заключается в том, что 2 страницы находятся в разных доменах. благодаря

Теги:
message

1 ответ

0
Лучший ответ

В конце концов я нашел ответ. Проблема в том, что внутри iframe есть код, это ошибка. Я добавил еще одно перенаправление и решил проблему (все находятся в теле соответствующего html файла):

OuterFrame.html:

<iframe id="receiver" src="Listener.html">

Listener.html:

<script type="text/javascript">
       window.addEventListener('message', receiveMessage, false);
       function receiveMessage(evt) 
       {
           alert("got message: " + evt.data);
       }

</script>
<iframe id="sender" src="Sender.html"></iframe>

Sender.Html:

<script>
  parent.postMessage("data, '*');
</script>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню