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);     
})

results matching ""

    No results matching ""