使用postMessage可以向不同域名的目标窗口发送消息,实现跨文档通信。
可以是页面中的两个iframe进行通信,也可以是主窗口与window.open的窗口进行通信。

浏览器支持情况:IE 8+、Firefox 3+、Chrome 4+、Safari 4+、Opera 10.1+、IOS Safari 3.2+、Android 2.1+。

所有浏览器都支持这个方法,但是IE8和IE9只允许postMessage方法与iFrame窗口通信,不能与新窗口通信。

网上资料上说IE10可以与新窗口进行通信,不过必须使用MessageChannel的方式。但是经过测试发现,在IE10下可以正常通过window.postMessage与新窗口进行通信。

targetWindow.postMessage(message, targetURL[, transferObject]);

参数-message: 是要发送的消息

参数-targetURL: 指定目标窗口的网址,不符合该网址就不发送信息。可以使用*表示不限定目标窗口的网址。

参数-prots: 跟随信息一起发送通道端口。