首页:
...
<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
似乎未到达父页面?
[attachEvent
以"onmessage"
的形式表示其事件名称,与addEventListener
(使用"message"
的相对)]