어느 가을날의 전환점

JAVASCRIPT|팝업 부모창과 자식창의 데이터 전달 모달 window.showModalDialog 본문

Development

JAVASCRIPT|팝업 부모창과 자식창의 데이터 전달 모달 window.showModalDialog

어느가을빛 2013. 10. 11. 20:04

부모창과 자식창의 데이터 전달 Html/JavaScript 

// 부모창 
<script language="JavaScript">
function Popup(){

var strURL = "pop.html";
var strPos = "dialogWidth:250px;dialogHeight:300px;status:no;scroll:no;resizable:no";

var result = new Array();

// 객체생성후 데이터 할당
var modalvalue = new Object(); 
modalvalue.key1 = name.value;
modalvalue.key2 = age.value; 

// 팝업 뛰우기(데이터전송)
result = window.showModalDialog(strURL,modalvalue,strPos); 

// 추가 (자식창 데이터 리턴받기)
var firstList = new Array();
firstList = result.split(";"); // 데이터구분자
name.value = firstList[0];

sex.value = firstList[1];

age.value = firstList[2];

}
</script>


// 자식창
<script language="JavaScript">
var opener = window.dialogArguments; // 부모창객체 통째로 get
var value1 = opener.key1; // 객체에 접근
var value2 = opener.key2;
</script>


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


// 자식창 데이터 => 부모창으로 넘기기


// 자식창
function Put(){
var pam1 = name.value;
var pam2 = age.value;
var pam3 = 100;
window.returnValue = pam1 + ";" + pam2 + " ;" + pam3 + " ;";
window.close();
}


// 부모창
var firstList = new Array();
firstList = result.split(";"); // 데이터구분자
name.value = firstList[0];

sex.value = firstList[1];

age.value = firstList[2];


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

// 응용


// 부모창

function ln_Popup(e1,e2){

var strURL; 
var strPos;
var arrResult = new Array();
var arrSend = new Array();
arrSend[0]='A';
window.dialogArguments=arrSend[0];

strURL = "../../common/html/school_pay_pop.html";
strPos = "dialogWidth:377px;dialogHeight:393px;status:no;scroll:no;resizable:no";
arrResult = showModalDialog(strURL,'',strPos);
if (arrResult != null) {
arrParam = arrResult.split(";");
eval(e1).text = arrParam[0];
eval(e2).value = arrParam[1];
} else {
eval(e1).text = "";
eval(e2).value = "";
}
}

// 호출

onclick="ln_Popup('txt_chakgyo','txt_chakgyonm')"


// 자식

function ln_Start(){
if(window.dialogArguments[0] == "A"){

alert("A값이 넘어왔습니다.");

gubun = "A";

}else{
gubun="B";
}
}


// 자식 => 부모창으로 리턴
function ln_Close(e){
if (e=="A") {
var row = gcds_data.rowposition;
window.returnValue = gcds_data.namevalue(row,"MINORCD") + ";" 
+ gcds_data.namevalue(row,"MINORNM") + ";" ;
window.close();
} else {
window.close();
}
}


#출처: http://blog.naver.com/linuxblack/90128272930


Comments