2

首页:

...
<script>
if (window.addEventListener) {
 // addEventListener equivalent of code below
} else if (window.attachEvent) {
 window.attachEvent("message", function(e) {
  if (e.origin != "page2.html") { return; }
  alert(e.data);
 });
}
</script>

<iframe src="page2.html"></iframe>

page2.html:

<script>
var message = "hello!";
parent.postMessage(message, '*');
</script>

此代码在 Chrome、Firefox 和 Opera 中运行良好。当然 IE 有自己的做事方式,所以尽管使用了自己的.attachEvent.

page2.html 实际上是另一个域上的页面;我正在发送正确的 P3P 标头(没关系,但就是这样)。

我如何找出为什么postMessage似乎没有到达父页面?

4

1 回答 1

11

attachEvent以 形式获取其事件名称"onmessage",而不是addEventListener(使用"message"

于 2013-02-06T20:47:15.923 回答