Как использовать postMessage для разных доменов при загрузке iframe? - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь передать данные из родительского домена в Iframe из другого домена.

Я прочитал, что могу использовать postMessage, чтобы избежать источника той же политики , но у меня все еще есть сообщение: Failed to execute 'postMessage'... The target origin provided does not match the recipient window's origin

Я попытался передать данные из родительского домена в Iframe и из Iframe в родительский домен.

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

window.onload = function() {
    var receiver = document.getElementById('Iframe').contentWindow,

    function sendMessage(e) {
        receiver.postMessage('Hi from Parent Domain!', 'Iframe-Domain.com');
    }
    receiver.addEventListener('pageshow', sendMessage);
}

Я хочу, чтобы сообщение отправлялось при загрузке определенной страницы Iframe.

Код для получения сообщения :

<div id="message">
</div>

window.onload = function() {
   var message = document.getElementById('message');

  function receiveMessage(e) {
    if (e.origin !== "Parent-Domain.com")
      return;

    message.innerHTML = "Message Sent: " + e.data;
  }
  window.addEventListener('message', receiveMessage);
}

Примечания:

  • Родительский домен, работающий на Nginx
  • Домен Iframe из веб-приложения (SalesForce), в котором я могу добавить некоторый код, но не изменить элементы, например, добавив кнопку «Onclick».

Спасибо

...