【发布时间】:2011-06-20 13:18:20
【问题描述】:
我不知道该怎么办。我尝试了几个来自不同来源的示例代码,我在不同的浏览器(从 Chrome 9 到 FF 4)中尝试了它们,但似乎仍然没有任何东西可以使用“postMessage”功能。 JS 控制台什么也没给我,没有一个错误,仍然没有发生任何事情:框架不想通信。完全没有。这甚至不是跨域的:两个框架都来自我的域。
这是上次尝试的示例代码: 父框架:
<iframe src="IFRAME_URL"></iframe>
<script>
window.addEventListener( "message",
function (e) {
if(e.origin !== 'DOMAIN'){ return; }
alert(e.data);
},
false);
</script>
子框架:
<html>
<head></head>
<body>
<script>
top.postMessage('hello', 'DOMAIN');
</script>
</body>
帮助非常感谢,非常感谢
【问题讨论】:
-
您的 iframe 中是否只有 2 个级别?可能是
top不是你的听众被声明的地方。可以试试parent.postMessage。 -
用 parent.postMessage 试过了,还是不行
-
您是否尝试过我的回答:stackoverflow.com/questions/3457391?
-
好的,我得到了它的工作......显然 DOMAIN 不能以斜杠结尾。叹息。
-
啊...我刚刚尝试了一个真实的网址,并且效果很好。可能必须有一个
/是的:)
标签: javascript iframe postmessage