2014-11-04 18 views
1

如果我在一個瀏覽器中打開一個域chat.example.com,並在其他瀏覽器上打開www.example.com(跨域)。是否有可能從www.abc.com發送消息到chat.abc.com?使用javascript中的postMessage函數發送消息從一個域到另一個域

我嘗試以下:

在接收器側iewww.example.com該腳本如下以接收消息:

jqcc(文件)。就緒(函數(){

var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent"; 
var eventer = window[eventMethod]; 
var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message"; 

// Listen to message from child window 
eventer(messageEvent,function(e) { 
if(e.data.indexOf("He") >= -1){ 
    console.log("Message Received:"+e.data); 
} 

},false); 

});

當我嘗試從http://chat.example.com發送消息作爲

window.postMessage( 「你好」, 「http://www.example.com」);

我沒有在瀏覽器的控制檯。請幫忙

回答

2

不,它不會工作。

postMessage api僅用於iframe。你想要做的是在www.example.com內打開一個iframe到www.chat.example.com。然後,您可以使用document.getElementById('iframe_pointing_to_chat').contentWindow.postMessage('message', '*')

現在,www.chat.example.com將通過onmessage處理函數接收消息。

相關問題