JavaScript因爲同源策略的限制,跨域通訊一直是棘手的問題。固然解決方案也有不少:html
各類方案網上都有不少實例代碼,你們能夠本身搜索一下。
html5中最炫酷的API之一:就是 跨文檔消息傳輸Cross Document Messaging 。高級瀏覽器Internet Explorer 8+, chrome,Firefox , Opera 和 Safari 都將支持這個功能。這個功能實現也很是簡單主要包括接受信息的」message」事件和發送消息的」postMessage」方法。html5
發送消息的」postMessage」方法web
向外界窗口發送消息:chrome
otherWindow.postMessage(message, targetOrigin);
otherWindow: 指目標窗口,也就是給哪一個window發消息,是 window.frames 屬性的成員或者由 window.open 方法建立的窗口跨域
參數說明:瀏覽器
接受信息的」message」事件app
var onmessage = function (event) { var data = event.data; var origin = event.origin; //do someing }; if (typeof window.addEventListener != 'undefined') { window.addEventListener('message', onmessage, false); } else if (typeof window.attachEvent != 'undefined') { //for ie window.attachEvent('onmessage', onmessage); }
回調函數第一個參數接收 Event 對象,有三個經常使用屬性:dom