如何在iframe与不同域名的iframe之间使用javascript postMessage?

时间:2013-06-26 13:29:32

标签: javascript html5

由于跨域问题,我在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

我已经尝试了两个不同的域,但在父级到子级和子级到父级,但不能对不同域的iframe进行iframe,这两个iframe是否可以在父html中添加一些代码的情况下进行通信?

感谢您的评论!

0 个答案:

没有答案