首页:
...
<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似乎没有到达父页面的原因?
答案 0 :(得分:11)
attachEvent
使用"onmessage"
形式的事件名称,而不是addEventListener
(使用"message"
)