window.top.postMessage отправляет "null" в качестве события.origin - PullRequest
0 голосов
/ 26 августа 2018

Я пытаюсь отправить сообщение из iframe в родительское окно.Я, конечно, хочу проверить origin сообщения перед его обработкой.Но, похоже, "null".Что я делаю не так?

// Parent:
$(document).ready(function() {
  loadIframe();
  iframeListen();
});

loadIframe = function() {
  var iframe;
  iframe         = document.createElement('iframe');
  iframe.src     = "/load_pages.htm";
  iframe.sandbox = "allow-scripts";
  iframe.id      = "page_iframe";
  iframe.onload  = function() {
    return postToIframe();
  };
  return document.body.appendChild(iframe);
};

iframeListen = function() {
  return window.addEventListener('message', function(event) {
    return console.log(event.origin); // "null"
  });
};

iframe отправляет свое сообщение так:

// iframe:
<script>
  window.top.postMessage('Hello parent', '*');
</script>

Информация о бонусе: Когда я отправляю сообщения в iframe, я получаю ожидаемый источник:

// Parent:
$(document).ready(function() {
  window.top.postMessage('Hello iframe', '*');
};

// iframe:
window.addEventListener('message', function(event) {
  console.log(event.origin); // "http://localhost:3000"
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...