首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JS postMessage不工作

JS postMessage不工作
EN

Stack Overflow用户
提问于 2017-01-20 20:13:31
回答 1查看 325关注 0票数 0

因此,在我的域的子域上,我有一个html文件,例如名为file.html,它本身也包含<script src="https://example.com/script.js">

然后,此script.js有一些侦听器与此html连接,还具有向父对象发送消息的函数,如下所示:

代码语言:javascript
复制
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,它的srcfile.html

这另一个域也有一些<script src="example.com/main.js">,我需要这个main.js来监听从script.js发送的消息。

main.js中,我有这样的代码:

代码语言:javascript
复制
if (window.addEventListener) {
  window.addEventListener("message", messageHandler);
} else {
  window.attachEvent("onmessage", messageHandler);
}
function messageHandler(event) {
  console.log(event.data);
}

但我什么都没拿到。没有显示JS、域名等错误,只有控制台静默。

我哪里错了?

EN

回答 1

Stack Overflow用户

发布于 2017-01-20 20:34:51

可能你忘了将iframe命名为"target":

代码语言:javascript
复制
<iframe src="http://target.com" name="target">

<script>
  var win = window.frames.target;
  win.postMessage("message", *);
</script>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41763443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档