showModalDialog의 중간 매개 변수는 개체 또는 배열 또는 원하는 개체 일 수 있으며이 전달 된 개체는 window.dialogArguments를 참조하여 자식 폼 (예 : OnLoad 이벤트)에서 검색 할 수 있습니다.
잠깐만 기다려주세요. 코드 샘플을 포함 시키겠습니다. (이 작업을 한 지 약 10 년이되었습니다).
업데이트 : 다음은 showModalDialog를 사용하여 부모 창과 자식 창간에 데이터를주고받는 기본을 보여주는 매우 간단한 코드 샘플입니다. 동일한 폴더에 두 개의 HTML 파일을 만들고 이름을 "Parent.htm"및 "Child.htm"으로 지정합니다. parent.htm을이 코드를 넣어 :
<HTML>
<input type=button value="CustomConfirm"
onclick="ShowMyDialog()">
<script language="javascript">
function ShowMyDialog()
{
var obj = new Object();
obj.data1 = 'some data 1';
obj.data2 = 'some data 2';
showModalDialog('Child.htm', obj, '');
alert(obj.returnvalue);
}
</script>
</HTML>
및 에이 코드를 넣어 Child.htm :
<HTML>
<body onload="ReadPassedData()"
onunload="DoUnload()">
<input type=text id="textbox1">
<br>
<input type=text id="textbox2">
<br>
<br>
Return value:<br>
<input type=text id="textbox3"
value="type something">
</body>
<script language="javascript">
function ReadPassedData()
{
var obj = window.dialogArguments;
var tb1 = document.getElementById('textbox1');
tb1.value = obj.data1;
var tb2 = document.getElementById('textbox2');
tb2.value = obj.data2;
}
function DoUnload()
{
var obj = window.dialogArguments;
obj.returnvalue = textbox3.value;
}
</script>
</HTML>
열기 브라우저에서 parent.htm을하고 "CustomConfirm"버튼을 클릭 . 자식 창에는 부모 창에 설정된 값 ("일부 데이터 1"및 "일부 데이터 2")이 표시되고 자식 창을 닫으면 세 번째 텍스트 상자에 입력 한 내용이 경고로 표시됩니다 상자가 부모로부터 호출됩니다. 이것은 당신이 자식에게 데이터를 전달하고 그것으로부터 데이터를 다시 얻는 기본적인 방법을 보여준다.
또한 자식 창 (showModalDialog 호출 자체에서 반환 된 값이 됨)에서 개체를 반환하는 방법이 있지만이를 수행하는 방법을 기억하지 않습니다.
업데이트 2는 :
가
var myarray = new Array();
myarray[0] = "Bob Smith";
myarray[1] = "Doug Jones";
myarray[2] = "Englebert Humperdinck";
var ret = showModalDialog('Child.htm', myarray, '');
alert(ret); // this will display whatever the child set for its
// window.returnValue
그리고 자식 창에서, 당신이 예전처럼 배열을 얻을 귀하의 세부 정보를 구축하는 데 사용할 것입니다 : 당신이 이런 일을 할 것, 대신 배열을 전달하려면 디스플레이 :
var myarray = window.dialogArguments;
alert(myarray[0]); // or whatever
이제 개체 대신 배열을 전달하고 있기 때문에, 당신은 (대신 전달 된 개체에에 ReturnValue 속성을 추가하는) true 또는 false를 반환해야합니다. window.returnValue
속성을 설정하여 자식에서 반환 값을 설정합니다. 확인 팝업을 만들므로 window.returnValue
을 true
또는 false
으로 각각 설정하는 "예"및 "취소"버튼이있을 것입니다.
귀하의 모달은 새 창입니까, 아니면 DIV입니까? –
이것은 내 모달 대화 코드입니다. window.showModalDialog ('PopUp.aspx', null, '상태 : 아니요, dialogWidth : 350px, dialogHeight : 200px, dialogHide : true, 도움말 : 아니요, 스크롤 : 아니요'); –
DIV를 사용하여 코드를 표시 할 수도 있습니다! –