網站頁面跨域呼叫
阿新 • • 發佈:2020-12-22
// 跨域通訊,供父類呼叫 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