JAVASCRIPT|팝업 부모창과 자식창의 데이터 전달 모달 window.showModalDialog
부모창과 자식창의 데이터 전달 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