showModalDialog와 dialogArguments 이용하기

IT 바라보기/Programming


              [공지]연극 [스캔들] 초대이벤트! 진행中! (~5/29 까지)
              [공지]연극 [시간을 파는 상점] 초대이벤트! 진행中! (~6/4 까지)



1. GET 으로 보내기 (JavaScript 또는 JSP 로 확인)

<script>
    function OpenModal() {
        var sslect = document.forms["frmgblist"].sslect.value;
        var strModalValue = showModalDialog("include/calendar.jsp?gap=" + sslect,'searchForm',"dialogWidth:205px; dialogHeight: 270px; scroll:yes; resizable: No; status: No; help: No; center: No; screenX:" + x + "px; dialogleft:" +x+ "px; screenY:"+y+"px; dialogtop:"+ y + "px"");
    }
</script>


2. 인자에 window 주기 (JavaScript 로 확인)

<script>
    function OpenModal() {
        var strModalValue = showModalDialog("./?doc=buddy/forward22.php?kk=a", window, 'dialogHeight=100, dialogWeight=100, dialogLeft=0, dialogTop=200');
    }
</script>

 

2번 방법을 쓸때는 Modal 페이지에서 var myModal = window.dialogArguments; 이렇게 하면 opener 의 Element 로 바로 접근이 가능합니다.
ex) alert(myModal.sslect.value);


Modal 창을 사용하는 경우 자식창에서 부모창의 Element 로 접근이 안되고 "액세스가 불가능합니다." 라는 메세지가 나온다면 자식창과 부모창의 스크립트 가장 상위(<head>와 </head>사이) 에 아래 소스를 넣어서 domain을 맞춰 줍니다.

<script>
domain.name = 'shagall.tistory.com'; // 도메인주소(http:// 를 뺀 주소)
// 위 방법에서 오류가 날 경우 document.domain="shagall.tistory.com" 로 바꿔서 해보세요.
</script>



또 다른 방법 간단한 소스

// 부모창에 자바스크립트 부분
    function SABUN_SELECT(sSABUN)
    {
        var strURL  = "PAY1010_1.aspx?SABUN=" + sSABUN;
        var strPos = "dialogWidth:400px;dialogHeight:300px;status:no;scroll:no;resizable:no";
        var objReturnValue = showModalDialog(strURL,window,strPos);
       
        alert(objReturnValue.SABUN);
        alert(objReturnValue.SABUN_NAME);
        document.all.txtSABUN_CODE.value = objReturnValue.SABUN;
        document.all.t0SABUN_NAME.value = objReturnValue.SABUN_NAME;
    }
// 자식창에 자바스크립트 부분
    function DblClick_InputValue(SABUN, SABUN_NAME) {
            var opener = window.dialogArguments;          // 부모의 window 자체를 넘겨 받았으므로 부모의 모든객체에 access 할수 있다.
            var objReturn = new Object();
           
            objReturn.SABUN = SABUN;
            objReturn.SABUN_NAME = SABUN_NAME;
            window.returnValue = objReturn;      // object 를 returnValue 로 지정한다.
            window.close();
        }


Name
Password
Homepage
Secret
CIalIS 2011.09.28 04:19 URL EDIT REPLY
좋은 정보 감사! ㅎㅎ
좋은 하루 되세요.^^
하늘다래 | 2011.09.28 13:23 신고 URL EDIT
도움이 되셨다면 다행이네요^^
좋은 하루 되세요~
호러블캣 2011.10.11 13:47 신고 URL EDIT REPLY
감사합니다. 많은 도움이 되었어요 >, < !!
하늘다래 | 2011.10.11 20:03 신고 URL EDIT
도움이 됐다니 다행이네요^^
Music 2012.01.02 05:04 URL EDIT REPLY
우리는 매우 매우 모든 문서는 주변 최고의 아이디어를 어떻게 선택이라고 생각 해요. 이 논문 서비스에 대한 논문 약혼을 완료하거나 단순히 사람이 서비스로 논문 구속해 것이 서비스를 만드는 우리의 논문을 많이해야합니다.
박세민 2012.04.23 10:10 URL EDIT REPLY
감사합니다 domain.name은 아니지만
window.name으로 처리했는데
많은 참조가 되었어요~
car transporters 2012.08.23 14:31 URL EDIT REPLY
정말 당신이 우리를 위해 제공 한이 멋진 게시물을 주셔서 감사합니다. 이런 일이 대부분의 사람들을위한 도움이 될 것입니다 보장합니다.
car transporters 2012.08.23 14:31 URL EDIT REPLY
정말 당신이 우리를 위해 제공 한이 멋진 게시물을 주셔서 감사합니다. 이런 일이 대부분의 사람들을위한 도움이 될 것입니다 보장합니다.
hot tubs for sale 2012.08.29 12:35 URL EDIT REPLY
블로그는 정말 감지하고 나는 정보를 공유 더욱 덕분에 저를 도와 줄 것을 다시 한 번이 사이트를 방문 계속 싶어요.
cheap hot tubs 2012.09.09 13:00 URL EDIT REPLY
좋은 소식은, 당신이 말한 정말 날에 도움이됩니다. 난 더 이상 당신과 함께 동의 할 수 없습니다. 이뿐만 아니라 정말 재미 있어도 그 사람이에 대해 친구와 이야기했습니다. 를 통해 당신의 좋은 일을 계속.