출처 : http://blog.naver.com/kimjeehoon12?Redirect=Log&logNo=24261863
JScript의 showModalDialog나 showModelessDialog 메소드를 통해 웹 페이지 대화상자를 오픈시키면 window.open()을 사용한 경우보다 더 깔끔하게 대화상자를 오픈시킬 수 있습니다. 이것은 많은 분들이 알고 계시던데, 대화상자에서 처리한 결과값을 원래의 브라우져로 전달해 주는 방법을 모르시는 분들이 많은 것 같더군요.<P>
showModalDialog나 showModelessDialog로 오픈시킨 대화상자에서는 returnValue라는 변수에 어떠한 값을 넣어줌으로써 대화상자를 오픈시킨 브라우저에 특정값을 리턴할 수 있습니다.<P>
예제를 보여드리죠.<P>
<FIELDSET>
<LEGEND><B>브라우져의 JScript 예</B></LEGEND>
var nTest = window.showModalDialog("dialog.html","","help=no; scroll=no; dialogWidth=350px; dialogHeight:300px; center:yes");
</FIELDSET><P>
<FIELDSET>
<LEGEND><B>dialog.html의 JScirpt 예</B></LEGEND>
window.returnValue = "1111";<BR>
window.close();<BR>
</FIELDSET><P>
위와 같은 식으로 대화상자의 returnValue를 1111로 설정해 주면, 대화상자가 닫힐때 원래 브라우져의 nTest라는 변수에는 1111의 값이 들어가게 됩니다.<BR>
주의하십시오! 대화상자가 닫히는 순간에 브라우져로 값이 전달되는 것이지, returnValue에 값이 넣어질때 브라우져로 값이 전달되는 것이 아닙니다. 말 그대로 return값을 정해주는 것입니다.<P>
만약 전달해주어야 하는 값이 한개가 아니라 여러개일때는 어떻게 해야 할까요?<BR>
그때는 어레이나 구조체를 사용하시면 됩니다.<P>
<FIELDSET>
<LEGEND><B>dialog.html의 JScirpt 예 2탄</B></LEGEND>
function oMultiValue(nWidth, nHeight)<BR>
{<BR>
this.m_nWidth = nHeight;<BR>
this.m_nHeight = nHeight;<BR>
}<BR>
var oTransValue = new oMultiValue(10, 10);<BR>
window.returnValue = oTransValue;<BR>
window.close();<BR>
</FIELDSET><P>
위 와 같이 oMultiValue라는 구조체(?)를 만들어 값을 넘겨주면 2개, 3개, 100개, 1000개의 값도 넘겨줄 수 있겠죠? 넘겨줄 수 있는 값은 오브젝트도 가능하고 스트링도 가능하고 어레이도 가능하며 그 어떤 값도 가능합니다.<
JScript의 showModalDialog나 showModelessDialog 메소드를 통해 웹 페이지 대화상자를 오픈시키면 window.open()을 사용한 경우보다 더 깔끔하게 대화상자를 오픈시킬 수 있습니다. 이것은 많은 분들이 알고 계시던데, 대화상자에서 처리한 결과값을 원래의 브라우져로 전달해 주는 방법을 모르시는 분들이 많은 것 같더군요.<P>
showModalDialog나 showModelessDialog로 오픈시킨 대화상자에서는 returnValue라는 변수에 어떠한 값을 넣어줌으로써 대화상자를 오픈시킨 브라우저에 특정값을 리턴할 수 있습니다.<P>
예제를 보여드리죠.<P>
<FIELDSET>
<LEGEND><B>브라우져의 JScript 예</B></LEGEND>
var nTest = window.showModalDialog("dialog.html","","help=no; scroll=no; dialogWidth=350px; dialogHeight:300px; center:yes");
</FIELDSET><P>
<FIELDSET>
<LEGEND><B>dialog.html의 JScirpt 예</B></LEGEND>
window.returnValue = "1111";<BR>
window.close();<BR>
</FIELDSET><P>
위와 같은 식으로 대화상자의 returnValue를 1111로 설정해 주면, 대화상자가 닫힐때 원래 브라우져의 nTest라는 변수에는 1111의 값이 들어가게 됩니다.<BR>
주의하십시오! 대화상자가 닫히는 순간에 브라우져로 값이 전달되는 것이지, returnValue에 값이 넣어질때 브라우져로 값이 전달되는 것이 아닙니다. 말 그대로 return값을 정해주는 것입니다.<P>
만약 전달해주어야 하는 값이 한개가 아니라 여러개일때는 어떻게 해야 할까요?<BR>
그때는 어레이나 구조체를 사용하시면 됩니다.<P>
<FIELDSET>
<LEGEND><B>dialog.html의 JScirpt 예 2탄</B></LEGEND>
function oMultiValue(nWidth, nHeight)<BR>
{<BR>
this.m_nWidth = nHeight;<BR>
this.m_nHeight = nHeight;<BR>
}<BR>
var oTransValue = new oMultiValue(10, 10);<BR>
window.returnValue = oTransValue;<BR>
window.close();<BR>
</FIELDSET><P>
위 와 같이 oMultiValue라는 구조체(?)를 만들어 값을 넘겨주면 2개, 3개, 100개, 1000개의 값도 넘겨줄 수 있겠죠? 넘겨줄 수 있는 값은 오브젝트도 가능하고 스트링도 가능하고 어레이도 가능하며 그 어떤 값도 가능합니다.<
'쓸만한 글' 카테고리의 다른 글
자동차보험사가 잘 알려주지 않는 것들 (사고보상) (0) | 2006.07.25 |
---|---|
자바스크립트로 랜덤하게 값 넣기 (0) | 2006.07.12 |
미디어 플레이어 제어하기 7 (0) | 2006.06.29 |
marquee 태그 (0) | 2006.06.28 |
자바스크립트 스타일시트 (0) | 2006.06.23 |