跨文本消息传递

跨文本消息传递(XDM)指来自不同域的页面间传递消息。只要是postMessage()方法。该方法接收两个参数,一个是需要传入的数据,另一个是传入数据的域。如果第二个参数是‘*’,那么可以消息发送给任何域的文档。

传递消息页面:

<iframe id="myframe" src="mesg-next.html"></iframe>

var iframeWindow = document.getElementById("myframe").contentWindow;
iframeWindow.postMessage('我是发送的消息', "*");

接收到消息会异步触发message事件,接收到的消息对象包括以下3个信息:

  • data:作为postMessage() 第一个参数传入的字符串数据
  • origin:发送消息的文档所在域
  • source:发送消息的文档window代理。这个代理主要是用于发送消息的窗口,如果发送消息来自同一个域,那么着对象计时window

接收消息页:

addHandler(window, 'message', function(event) { //触发message事件
    console.log(event.data);     //输出'我是发送的消息'
    event.source.postMessage("received", '*') //给发送消息的域传输数据
})

当发送消息页接收到反馈的数据后,也可以通过message事件获取数据。
发送消息页获取反馈数据:

addHandler(window, 'message', function(event) {
     console.log(event.data);    //输出'received'
})

支持浏览器有ie8+、Firefox3.5+、Safari4+、opera、chrome

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值