Javascript JS postMessage不起作用

Javascript JS postMessage不起作用,javascript,html,iframe,cross-domain,Javascript,Html,Iframe,Cross Domain,所以,在我的域的子域中,我有一个html文件,例如称为file.html,它本身也包括 然后,这个script.js有一些与这个html连接的侦听器,还有向父级发送消息的功能,如下所示: v.sendMessageToParent = function (message) { var jsonMessage = { action: message }; var win = window.frames.target; win.postMessage(

所以,在我的域的子域中,我有一个html文件,例如称为
file.html
,它本身也包括

然后,这个
script.js
有一些与这个html连接的侦听器,还有向父级发送消息的功能,如下所示:

v.sendMessageToParent = function (message) {
    var jsonMessage = {
        action: message
    };
    var win = window.frames.target;
    win.postMessage(jsonMessage, '*');
};
v.sendActionMessageToParent = function (action) {
    var jsonMessage = {
        action: 'action',
        type: action
    };
    var win = window.frames.target;
    win.postMessage(jsonMessage, '*');
};
然后,在另一个域上,我有一个
iframe
,它
src
file.html

另一个域也有一些
,我需要这个
main.js
来监听从
script.js
发送的消息

main.js
中,我有以下代码:

if (window.addEventListener) {
  window.addEventListener("message", messageHandler);
} else {
  window.attachEvent("onmessage", messageHandler);
}
function messageHandler(event) {
  console.log(event.data);
}
但我什么也没得到。没有显示JS、域或其他错误,只是在控制台中保持沉默


我哪里错了?

您可能忘了将iframe命名为“target”:


var win=window.frames.target;
win.postMessage(“message”,*);

from MDN window.frames-返回窗口本身,它是一个类似数组的对象,列出当前窗口的直接子帧。那么,这个构造窗口是什么。框架。目标?我刚从某处获取了这个函数,所以。。。试图更改为window.parent.postMessage,但仍无结果,
<iframe src="http://target.com" name="target">

<script>
  var win = window.frames.target;
  win.postMessage("message", *);
</script>