我不知道该怎么做。我尝试了来自不同来源的几个示例代码,并在不同浏览器中尝试了它们(从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>
非常感谢您的帮助,非常感谢!
top
不是你的监听器声明的位置。可以尝试使用parent.postMessage
。 - Mic/
:) - Mic