html5 postMessage跨域通信 1.解决页面与嵌套的iframe消息传递

postMessage(data,origin)

1、父页面获取iframe的数据
第一步:iframe向父页面发送数据

var  idata="abc";
// *代表向所有父级发送,或者可以指定地址
window.parent.postMessage(idata,"*");

第二步:父页面接收iframe的数据

  window.addEventListener('message',function(rs){ 
         console.log(rs.data);
})

2、iframe获取父页面数据
第一步:父页面向iframe发送数据

<iframe src="tpl/map.html" name="myFrame" width="100%" height="600px" scrolling="no" id="editmap"></iframe>
//获取iframe的id 
var ifr = document.getElementById('editmap');
//iframe的路径
var url=document.location.origin+'/admin/tpl/maptxt.html';
//要发送的数据
var fdata=[$scope.tablesData[0].long,$scope.tablesData[0].lat];
//页面加载完后,执行发送方法
setTimeout(function(){
    ifr.contentWindow.postMessage(fdata,url);
},2000);

第二步:iframe接收数据

window.addEventListener('message',function(rs){
    var pointdata=rs.data;
    console.log(pointdata);     
})
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值