// 跨域通信,供父类调用 window.addEventListener("message",function(obj){ var data = obj.data; var action = data.action; var data = data.data; if(action=='showPointByCode' ){ if(typeof(showPointByCode)=='function'){ showPointByCode(null,data.type,data.point_code); } } }); // 下发任务事件 function sendTask(dom){ var name = $(dom).attr("data-name"); var code = $(dom).attr("data-code"); var data = {"code": code,"name": encodeURIComponent(name),"token":token}; var message = {'data': data,action: 'sendTaskFromMap'}; var targetWindow= window.parent; // 注意此处
targetWindow.postMessage(message,"http://接收方IP:端口"); }
如果需要从其它项目接收信息,需要添加window.addEventListener注册监听接收
如果需要将项目发送给其它项目,需要使用postMessage进行发送,注意发送的对象,如果发给自己的父页面,使用window.parent,如果发送给自己的子页面iframe,则document.getElementById('myIFrame').contentWindow
确保你使用的是iframe的contentWindow
属性,而不是节点对象。
对addEventListener和postMessage的使用参考:
https://developer.mozilla.org/zh-CN/docs/Web/API/Window/postMessage
https://developer.mozilla.org/zh-CN/docs/Web/API/EventTarget/addEventListener