- 메세지의 송수신을 통해 둘 이상의 웹 페이지가 서로 데이터 주고받음
- 도메인이 다른 웹페이지도 데이터 공유가능
- 송신 : postMessage(data, ports, targetOrigin)
- 수신 : onmessage() 이벤트 핸들러
- postMessage(data, ports, targetOrigin)
- data : 임의의 자바스크립트 객체
- ports : messagePort객체, 생략가능
- targetOrigin : 메세지를 수신하는 도메인(프로토콜+도메인+포트번호)
- 보안을 위해 메세지를 주고받는 상대의 신원 확인 필수
- onMessage 이벤트 핸들러
// 메세지를 수신해 MessageEvent형의 객체 얻음
window.onmessage = function(e) {
// origin 속성으로부터 송신처 확인
if(e.origin == "http://localhost"){
// data 속성으로 수신된 메세지 확인
alert(e.data);
}
};
// 메세지를 수신해 MessageEvent형의 객체 얻음
window.addEventListener("message", function(e) {
....
}, false);
var destFrame = document.getElementById("message-dest");
destFrame.contentWindow.postMessage("메세지 내용", /*포트 생략가능*,/ "http://desc.example.com");