邮寄消息不起作用

时间:2018-01-15 11:16:12

标签: javascript postmessage

我想将消息从一个域发送到另一个域。为此,我使用 postMessage 。我有一个似乎很好的代码,但仍然无法发送消息。经历了各种相关的帖子但没有用。

即使在同一个域上也无法正常工作。

如果有人能指出代码有什么问题,那将会非常有帮助。感谢

主页:

<html>
<head></head>
<body>
    <iframe src="http://localhost/sandbox/test/test2.html"></iframe>
    <script>
        window.addEventListener( "message",
          function (e) {
                if(e.origin !== 'http://localhost/sandbox/test/test2.html'){ return; } 
                alert(e.data);
          },
          false);
    </script>
</body>
</html>

iframe内容:

<html>
    <head></head>
    <body>
        <script>
            top.postMessage('hello', 'http://localhost/sandbox/test/test.html');
        </script>
    </body>
</html>

1 个答案:

答案 0 :(得分:1)

你应该做一些基本的调试,找出问题所在。

您的函数以if测试开始,但您似乎没有确定问题是否未输入if或者是否未调用该函数所有

在那里放一个console.log()语句来查找。

测试e.origin的值是什么。

你应该发现它是http://localhost(与你测试的不匹配)。 Origins不包括路径段。

这就是你的测试失败的原因。