2012-12-17 2 views
1

다른 게시물을 온라인 및 본 웹 사이트에서 읽은 후에도 postMessage를 사용하는 데 문제가 있습니다.크로스 도메인 용 postMessage를 사용하는 iframe에 대한 부모님 메시지

var abc_iframe = document.createElement ('iframe')을 사용하여 생성되는 iframe이 있습니다. 내 이해에서 iframe 내에서 메시지를 수신 대기 이벤트 리스너를 첨부하는 가정합니다. 나는 시도했다 : 이들의

1. abc_iframe.addEventListener("message", function(e){ console.log(e.data); }, false); 
2. document.frames['id_iframe'].addEventListener("message", function(e){ console.log(e.data); }, false); 
(id_iframe right here being the id of the iframe) 
3. WinJS.Application.addEventListener("message", function(e){ console.log(e.data); }, false); 

없음 일 없다. 나는 iframe이 콘텐츠 (로컬이 아닌) 다른 도메인에서 호스팅되는

1. parent.postMessage("message", "ms-appx://" + document.location.host); 
2. window.parent.postMessage("message", "ms-appx://" + document.location.host); 

사용은 iframe 내에서 PostMessage를을 보낸다.

답변

1

iframe에서 메시지를 받으려면 iframe이 아닌 window 개체에 연결해야합니다. 메시지에서

window.addEventListener(function(e) {})); 

당신은 당신이 모든 창에서 모든 메시지는이 이벤트 핸들러에 의해 처리되는 바와 같이, 부모가 메시지를 보내는은 iframe을 식별 할 수 있습니다 정보를 포함해야한다 보냅니다.

또한 addEventListener는 일부 브라우저에서만 작동합니다. 이전 IE 버전에서는 attachEvent를 사용합니다.

관련 문제