跨html进行消息传递 靠的是window 对象新增的一个方法 和一个对象监听器属性
该方法是 targetWindow.postMessage(message , targetOrigin);
此方法向 targetWindow 窗口中的 html 发送消息,所以应先获取这个窗口。message 为带发送的数据,而 targetOrigin 表示发送源的域名。
这个对象监听器为 window.onmessage 这个属性是一个形如 function(event) { } 的函数。
这个 onmessage 所指定的函数的参数 为 MessageEvent 对象含有五个只读属性
1)data 表示发送来的消息的数据,这个数据可以是各种格式,比如文本,还可以是 json格式。
2)origin 属性返回发送此消息的源域名
3)lastEventId 该消息的 ID,即唯一标识
4)source 返回发送该消息的窗口
一些问题:
获取window窗口对象一般有两种方式:
1.可以新打开一个页面
// 打开一个新窗口
var targetWin = window.open('http://localhost:8888/target/target.html'
,'_blank','width=400,height=300'); //①
// 等该窗口装载完成时,向该窗口发送消息
targetWin.onload = function ()
{
// 向http://localhost:8888/target发送消息