====== 팝업샘플 일반 가이드 ======
일반 팝업 화면이다.
'값 전달 및 닫기' 버튼을 클릭하면 부모화면으로 값을 전달 후 팝업이 닫히게 된다.
관련 API로 unload, getextradata, getparent, unloadpopup가 있다.
관련 이벤트로 on_load가 있다.
===== 예시 =====
템플릿 위치: /HTML5/SCREEN/POPUP/popup_screen
템플릿 파일
* [[xf5projecthome>template/screen/HTML5/SCREEN/POPUP/popup_screen.xml|popup_screen.xml]]
* [[xf5projecthome>template/screen/HTML5/SCREEN/POPUP/popup_screen.js|popup_screen.js]]
* [[xf5projecthome>template/template.html?xframe_screen_url=/HTML5/SCREEN/POPUP/popup_screen|새창으로 실행]]
echo '';
echo '';
echo '';
==== 화면 스크립트 ====
/**
* 화면이 로드될때 부모화면에서 받은 데이터가 있다면 입력한다.
*/
function screen_on_load()
{
var objExtraData;
// 팝업화면 열때 전달한 extra_data 얻기
objExtraData = screen.getextradata();
if (objExtraData !== null && objExtraData.POPOP_PARAM_DATA !== "") {
// 초기값 설정
this.fld_param_data.settext(objExtraData.POPOP_PARAM_DATA);
}
}
/**
* 화면을 닫는 버튼클릭 이벤트를 처리한다.
*/
function btn_close_no_return_on_mouseup(objInst)
{
// 부모화면에 값을 전달하지 않고 닫기
screen.unload();
}
/**
* 화면을 닫으면서 부모화면으로 값을 전달하는 버튼클릭 이벤트를 처리한다.
*/
function btn_close_return_data_on_mouseup(objInst)
{
var strReturnValue, objExtraData;
// 팝업화면 열때 전달한 extra_data 얻기
objExtraData = screen.getextradata();
// 값 전달 및 팝업닫기
strReturnValue = this.fld_return_data.gettext();
this.ReturnClosePopup(strReturnValue, objExtraData);
}
/**
* 계산 결과를 부모화면으로 전달 후 팝업을 닫는다.
* @param strReturnValue 부모화면으로 전달할 결과값
* @param objExtraData 부모화면에서 전달된 extra 데이터
*/
function ReturnClosePopup(strReturnValue, objExtraData)
{
var srcParent, scrParentMember;
// 리턴받는데 사용할 함수명을 전달한 경우
if (objExtraData != null && objExtraData.RETURN_FUNCTION_NAME !== "") {
// 부모화면 screen 구하고 유효성 처리
srcParent = screen.getparent();
if (factory.isobject(srcParent)) {
// 부모화면의 멤버 오브젝트 구하기
scrParentMember = srcParent.getmembers();
if (factory.isobject(scrParentMember) == true) {
if (factory.isfunction(scrParentMember[objExtraData.RETURN_FUNCTION_NAME])) {
// 부모화면의 함수를 통하여 값 전달
scrParentMember[objExtraData.RETURN_FUNCTION_NAME](strReturnValue);
}
}
}
}
// 팝업화면 닫기
screen.unloadpopup(strReturnValue);
}