[자바스크립트] POST 팝업 오픈 샘플(feat.암복호화 후)

2017. 6. 7. 16:43IT/Web-JavaScript

- 별도 form 생성(화면 새로고침 방지 위해)

=============================================


<form id="form2" name="form2" method="post">

<div id="paramsAria"></div>

</form>


=============================================


- 팝업 오픈을 위한 사전작업(암복호화 로직 및 element 생성)


// post로 그룹웨어에 넘길 변수들 aria로 암호화

function fn_edayView(regId, regMethod, docYearmon, docNumber) {

var params = {}; 

// params['returnUrl'] = "/audsol/au/eday/AudauEdayAimmtrView.do";

params['returnUrl'] = "${gwLinkUrl}/sign/hwpsign/signDocOpenAud.jsp";

params['docKind'] = "auditEnroll";

params['docYearmon'] = docYearmon;

params['docNumber'] = docNumber;

params['docType'] = "aud";

/*

  2017.03.13 (월) userId에는 SK_ID 값이 들어가야 하므로 변경

  1. suserId 에서 sskId 로 변경

*/

params['userId'] = "${sskId}";

params['callPlace'] = "aud";

params['folderId'] = regId;

params['regMethod'] = regMethod;

$.ajax({

type: "POST", 

url:  "<c:url value='/encrypt/ajaxEncryptRet.do'/>",  // ajax 대상 url

data: params,

dataType: 'json',  

success:function(data){

$("#paramsAria").empty();

var r = data.transAria;

var openUrl = "${linkUrl}/trgetDecrypt.jsp"; // 팝업 연결 페이지


var el1 = $("<input></input>").attr("type", "text").attr("id", "trgetId").attr("name", "trgetId").val(r.trgetId);

   ...    // 파라미터 추가

$("#paramsAria").append(el1);


goPopupPost(openUrl, 800, 600); // 팝업 호출

}, 

error:function (data, textStatus, jqXHR) {

           alert(textStatus + " ===> " + jqXHR);

       } 

});

}


============================================
- 팝업 오픈


/**

* POST방식 팝업 오픈 :   form='objForm'을 이용

* @param actionUrl - 페이지 url 

* @param params - 변수 배열

* - var params = new Array({"변수1":값_1}, {"변수2":값2});

* @param width  - 넓이

* @param height - 높이

* @param target - 타겟

*/

function goPopupPost(actionUrl, width, height, target){

var formId = $("#form2"); 


var openTarget = ( isString(target) == "" )?"newOpen":target;

var openWidth  = ( isString(width)  == "" )?"700":width;

var openHeight = ( isString(height) == "" )?"550":height;

// 03. blank 화면 중앙에 띄운다.

var screenW = screen.width; 

var screenH = screen.height; 

var xtop    = (screenH-openHeight)/2;

var yleft   = (screenW-openWidth)/2;

window.open("about:blank", openTarget, "width="+openWidth+", height="+openHeight+", top="+xtop+", left="+yleft+", status=yes, scrollbars=yes"); 

// 04. 화면 이동 

formId.attr("target", openTarget);

formId.attr("action", actionUrl).submit();

$("#paramsAria").empty();

}