screen.postmessage API 통해서 송신된 메시지에 대한 수신 이벤트이다. 자세한 내용은 샘플 소스를 참조한다.
Parameters | Type | Description |
---|---|---|
message | STRING | 수신한 메시지 |
origin_uri | STRING | 메시지를 송신한 페이지의 URI |
src_screeninst | INSTANCE | 메시지를 송신한 화면 인스턴스 또는 HTML window 오브젝트 |
Type | Description |
---|---|
void |
src_screeninst 파라미터값은 메시지 송신자가 xFrame5의 screen.postmessage API로 송신한 경우에는 xFrame5의 screen 오브젝트가 전달되고, 외부 일반 HTML에서 송신한 경우에는 HTML의 window 오브젝트가 전달된다.
function btn_postmessage_on_mouseup(objInst)
{
screen.postmessage("message", "*");
}
/**
* screen.postmessage API 통해서 송신된 메시지에 대한 수신 이벤트
* 이 이벤트는 브라우저 window.postMessage API를 통해서 메시지가 수신된 경우에도 발생한다.
*
* @param {string} message 수신한 데이터
* @param {string} origin_uri 메시지를 송신한 URI
* @param {Object} src_screeninst xFrame 화면 오브젝트 또는 HTML window 오브젝트
*/
function screen_on_postmessage(message, origin_uri, src_screeninst)
{
var isWindowObject;
factory.consoleprint("screen_on_postmessage> start");
factory.consoleprint("screen_on_postmessage> message = " + message);
factory.consoleprint("screen_on_postmessage> origin_uri = " + origin_uri);
isWindowObject = true;
// 메시지를 보낸 URL과 Domain이 다른 경우, 보안 Exception 발생할 수 있기 때문에 try 처리
try {
if (src_screeninst["getscreenurl"] !== undefined) {
isWindowObject = false;
}
}
catch (e) {
factory.consoleprint("screen_on_postmessage> Exception Msg = " + e.message);
}
if (isWindowObject == false) {
// xFrame5 screen.postmessage API를 통해서 메시지 수신된 경우
factory.consoleprint("screen_on_postmessage> src_screeninst is xFrame screen 오브젝트");
factory.consoleprint("screen_on_postmessage> source screen url = " + src_screeninst.getscreenurl());
// 테스트용 응답 메시지 송신
if (message != "return message") {
src_screeninst.postmessage("return message", "*");
}
}
else {
// 외부 HTML에서 postmessage API를 통해서 메시지 수신된 경우, src_screeninst 파라미터는 HTML window 오브젝트
factory.consoleprint("screen_on_postmessage> src_screeninst is HTML window 오브젝트");
// 테스트용 응답 메시지 송신
if (message != "return message") {
src_screeninst.postMessage("return message", "*");
}
}
}