2014-11-04 9 views
1

하나의 브라우저에서 하나의 도메인 chat.example.com을 열고 다른 브라우저에서 www.example.com (크로스 도메인)을 열면. www.abc.com에서 chat.abc.com으로 메시지를 보낼 수 있습니까?자바 스크립트에서 postMessage 함수를 사용하여 한 도메인에서 다른 도메인으로 메시지 보내기

수신기 측 iewww.example.com에서 스크립트를 다음과 같이 메시지를 수신 :

jqcc (문서) .ready를 (함수() {

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); 

난 다음 시도

}};

내가

window.postMessage로 http://chat.example.com에서 메시지를 전송하려고하면 ("안녕하세요", "http://www.example.com");

나는 브라우저의 콘솔에서 아무것도 얻지 못했다. 도와주세요

답변

2

아니요, 작동하지 않습니다.

postMessage api는 iframe과 함께 사용해야합니다. 원하는 것은 www.chat.example.comwww.example.com 안쪽으로 iframe을 여는 것입니다. 그런 다음 document.getElementById('iframe_pointing_to_chat').contentWindow.postMessage('message', '*')을 사용할 수 있습니다.

이제 www.chat.example.com은 onmessage 처리기를 통해 메시지를 수신합니다.