1

クロスドメインの問題により、異なるドメインの iframe と iframe 間で postMessage を使用する際に問題が発生しています。私のコードは、親から子へ、またはその逆で機能します。しかし、ある iframe から別の iframe にメッセージを渡すことはできません。

そのための解決策はありますか?

編集:これらはコードです-iframe1-jsbin.comに追加しました(iframe1でメッセージを送信し、その逆も同様です)

var button = document.getElementById('b2');
  var input = document.getElementById('m2');
  var origin = origin || window.location.origin;
  button.onclick = function() {
      window.parent.postMessage(input.value, "*");
  };

  var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
  var eventer = window[eventMethod];
  var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";

  eventer(messageEvent, function(e) {
    document.getElementById("display").innerHTML = e.data;
  },false);

iframe2

var submit = document.getElementById('b2');
var input = document.getElementById('m2');
submit.onclick = function() {
 var origin = origin || window.location.origin;     
 window.parent.postMessage(input.value, origin);
};

var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
var eventer = window[eventMethod];
var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";

eventer(messageEvent, function(e) {
 output = e.data;
 document.getElementById('display').innerHTML = e.data;
},false);

メッセージの送受信で同じことをしただけです。しかし、コンソールで常にこのエラーが発生しました。http://jsbin.comにメッセージを投稿できません。受信者のオリジンはhttp://mypersonaldomain.comです

私はすでに2つの異なるドメインを試しましたが、親から子へ、子から親へ、しかし異なるドメインでiframeからiframeを行うことはできません.これらの2つのiframeは、親htmlにコードを追加せずに通信できますか?

コメントありがとうございます!

4

0 に答える 0