window.attachEvent似乎在IE8中不起作用

时间:2013-02-06 20:45:18

标签: javascript javascript-events internet-explorer-8

首页:

...
<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,FF和Opera中运行良好。当然,IE有自己的做事方式,所以尽管使用了自己的.attachEvent,但这段代码仍无效。

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

如何找出postMessage似乎没有到达父页面的原因?

1 个答案:

答案 0 :(得分:11)

attachEvent使用"onmessage"形式的事件名称,而不是addEventListener(使用"message"