1. 程式人生 > 實用技巧 >網站頁面跨域呼叫

網站頁面跨域呼叫

// 跨域通訊,供父類呼叫
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