화면 » Event

on_postmessage

Description

screen.postmessage API 통해서 송신된 메시지에 대한 수신 이벤트이다. 자세한 내용은 샘플 소스를 참조한다.

Parameters

Parameters Type Description
message STRING 수신한 메시지
origin_uri STRING 메시지를 송신한 페이지의 URI
src_screeninst INSTANCE 메시지를 송신한 화면 인스턴스 또는 HTML window 오브젝트

Return Value

Type Description
void

Remark

src_screeninst 파라미터값은 메시지 송신자가 xFrame5의 screen.postmessage API로 송신한 경우에는 xFrame5의 screen 오브젝트가 전달되고, 외부 일반 HTML에서 송신한 경우에는 HTML의 window 오브젝트가 전달된다.

Example

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", "*");
		}
    }
}

Viewer Ver.

9.1.1.1

Update Date

20230508