PHP & Others

JScript - Dialog의 returnValue

페이지 정보

본문

글쓴이:WndProc JScript - Dialog의 returnValue 조회수:1601 WndProc http://wndproc.d2g.com 제 홈에 어떤 분이 질문을 올렸는데, 많은 분들이 모르시는 내용인 듯 하여 이곳에 그 답변을 대신 씁니다. JScript의 Dialog에 관련된 내용입니다.

질문내용 다름이 아니라요.
다이얼로그창을 띄운다음. 다이얼로그 창에서 부모창으로 값을 전해줄라거 하는데요. 그거 어떻게 하는쥐 너무 궁금해서 .. 질문을 올립니다(__);; 죄송.
보통 일반 윈도운창 같은경우는 부모창을 이동시키는등 리로드를 시킬때 opener 를 쓰잖아요..
그래서 다이얼로그창에다 opener 썼는데. 에러가 나오더라구요..
정말 급하거든요. 제발 부탁드릴께요.. 그럼 존하루 되세요..^^;;

JScript의 showModalDialog나 showModelessDialog 메소드를 통해 웹 페이지 대화상자를 오픈시키면 window.open()을 사용한 경우보다 더 깔끔하게 대화상자를 오픈시킬 수 있습니다. 이것은 많은 분들이 알고 계시던데, 대화상자에서 처리한 결과값을 원래의 브라우져로 전달해 주는 방법을 모르시는 분들이 많은 것 같더군요.

showModalDialog나 showModelessDialog로 오픈시킨 대화상자에서는 returnValue라는 변수에 어떠한 값을 넣어줌으로써 대화상자를 오픈시킨 브라우저에 특정값을 리턴할 수 있습니다.

예제를 보여드리죠.

브라우져의 JScript 예 var nTest = window.showModalDialog("dialog.html","","help=no; scroll=no; dialogWidth=350px; dialogHeight:300px; center:yes");

dialog.html의 JScirpt 예 window.returnValue = "1111";
window.close();

위와 같은 식으로 대화상자의 returnValue를 1111로 설정해 주면, 대화상자가 닫힐때 원래 브라우져의 nTest라는 변수에는 1111의 값이 들어가게 됩니다.
주의하십시오! 대화상자가 닫히는 순간에 브라우져로 값이 전달되는 것이지, returnValue에 값이 넣어질때 브라우져로 값이 전달되는 것이 아닙니다. 말 그대로 return값을 정해주는 것입니다.

만약 전달해주어야 하는 값이 한개가 아니라 여러개일때는 어떻게 해야 할까요?
그때는 어레이나 구조체를 사용하시면 됩니다.

dialog.html의 JScirpt 예 2탄 function oMultiValue(nWidth, nHeight)
{
this.m_nWidth = nHeight;
this.m_nHeight = nHeight;
}
var oTransValue = new oMultiValue(10, 10);
window.returnValue = oTransValue;
window.close();

위와 같이 oMultiValue라는 구조체(?)를 만들어 값을 넘겨주면 2개, 3개, 100개, 1000개의 값도 넘겨줄 수 있겠죠? 넘겨줄 수 있는 값은 오브젝트도 가능하고 스트링도 가능하고 어레이도 가능하며 그 어떤 값도 가능합니다.

질문하셨던 분께 도움이 되었길 빕니다.
읽어주셔서 감사합니다.

관련자료

등록된 댓글이 없습니다.
Today's proverb
결혼은 작은 이야기들이 계속되는 긴긴 이야기다. (피천득)