HTML5 跨文档消息传输
基本介绍
HTML5提供了在网页文档之间互相接收与发送信息的功能。使用这个功能,只要获取到网页所在窗口对象的实例,不仅同源(域+端口号)的Web网页之间可以互相通信,甚至可以实现跨域通信。
要想授受从其他窗口发送来的信息,必须对窗口对象的message事件进行监听,代码如下:
子页面中的代码如下:
通过对window对象的message事件进行监听,可以接收消息。通过访问message事件的origin属性,可以获取消息的发送源(本例中主页面的发送源为“http://Lulingniu”,子页面的发送源为“http://www.blue-butterfly.net”)。注意:发送源与网站的URL地址不是一个概念,发送源只包括域名与端口号,为了不接收其他源恶意发送过来的消息,最好对发送源做检查。通过访问message事件的data属性,可以取得消息内容(可以是任何JavaScript对象,使用JSON)。使用postMessage()方法发送消息。通过访问message事件的source属性,可以获取消息发送源的窗口的代理对象。