none
특정 웹사이트를 컨트롤하는데 모달창제어에 대해서~ RRS feed

  • 질문

  • 윈도우 폼에서 별도의 웹브라우저를 띄워서(예: 쇼핑몰 자동회원가입) 자동화 프로그램을 만들려고 합니다
    회원가입내용 입력폼에 자동으로 한번으로 입력하고 그 다음페이지로 넘어가는 과정은 어렵지는 않았습니다
    헌데 window.open(url)이 아닌 window.showmodaldialog(url) (예:우편번호입력창) 의 창으로 열리는 경우
    해당 Input 값(동,면,리 입력)에 넣는것을 모르겠습니다. 어떠한 메쏘드를 써야하는지
    여기서 너무 막힙니다~
    (c#으로 만들고 있습니다)

     

    2011년 8월 24일 수요일 오전 6:07

답변

  • 안녕하세요,

    원하시는 바가, Modal Dialog 창으로 띄운 우편번호 검색창에서 input창에서 입력값(. 도로명주소) 받아 우편번호를 확인하고 창을 닫으면, 우편번호 결과를 parent 페이지에서 받는 것으로 이해하였습니다.

    Modal Dialog창으로 파라미터값을 넘기는 방법은 showModalDialog 두번째 파라미터를 사용합니다.

    . window.showModalDialog("showModalDialog_target.htm", “파라미터값”, "dialogHeight: 500px; dialogWidth: 600px; dialog Dialog");

    Modal Dialog창에서 일련의 로직을 통해 우편번호의 결과값을 얻으면 이를 다시 리턴해야 하는데 이는 returnValue값을 설정합니다.

    . window.returnValue=”06757”;

    다음 그림과 같은 간단한 모습의 샘플을 작성하였습니다.

    도로명주소를 넣은 다음 우편번호 검색 버튼을 누릅니다.

    입력된 도로명 주소가 반영된 Modal Dialog 창이 뜹니다.

    우편번호 검색 버튼을 누르면 입력된 도로명주소에 따라 우편번호를 계산하는 로직이 수행된다고 가정하고, 계산된 우편번호 결과가 표시됩니다.

    Modal Dialog 창을 닫으면 우편번호 결과가 parent 반영됩니다.

    이의 (우편번호 계산 로직 구현을 제외한 )샘플 코드입니다.

    Parent html입니다.

    -------------------------------------------------------------

    <!DOCTYPE html>

    <html>

    <head>

      <title>우편번호 - showModalDialog</title>

    </head>

    <body>

      <form id="oForm">

        도로명주소

        <input type="text" id="roadAddress" value="서초구 남부순환로"/>

        <input type="button" value="우편번호 검색" onclick="fnOpen()" />

        우편번호

        <input type="text" id="postcode" value="우편번호..."/>

      </form>

    <script>

        function fnOpen() {

    oForm.postcode.value=window.showModalDialog("showModalDialog_target.htm",oForm.roadAddress.value,

    "dialogHeight: 500px; dialogWidth: 600px; dialog Dialog");

        }

    </script>

    </body>

    </html>

    -------------------------------------------------------------

    Modal dialog의 html  (showModalDialog_target.htm)입니다.

    -------------------------------------------------------------

    <input type="text" id="roadAddress" value="도로명주소">

    <input type="button" onclick="execPostcode()" value="우편번호 검색">

    <input type="text" id="postcode" value="우편번호 결과">

    <span id="guide" style="color:#999"></span>

    <script>

    window.onload=fnInit;

    function fnInit(){

    window.roadAddress.value=window.dialogArguments;

    window.returnValue=window.postcode.value;

    }

    function execPostcode() {

    window.postcode.value = "06757";

    window.returnValue=window.postcode.value;

    }

    </script>

    -------------------------------------------------------------

    우편번호 계산 로직은 우편번호 DB 공개되어 있으므로 이를 이용하여 계산하거나 기존의 로직을 빌려와 작성할 있을 것입니다.


    유의점: 왜 showModalDialog 호출할 때 세번째 파라미터 내용이 잘못 올라가는 것인지 모르겠네요. 편집기의 문제인 듯 합니다. 실제 입력하려는 값은 다음과 같으니 참고하시기 바랍니다.










    • 편집됨 Jng.Kim 2017년 6월 14일 수요일 오전 2:05
    • 답변으로 표시됨 Boram YiModerator 2017년 6월 14일 수요일 오전 6:09
    2017년 6월 13일 화요일 오후 4:06

모든 응답

  • 안녕하십니까? 파랑불이 님

    Microsoft MSDN Forum 사이트를 방문해 주셔서 감사합니다.

     

    문의 하신 특정 웹사이트를 컨트롤하는데 모달창제어에 대해서~”에 대한 답변을 드리겠습니다.

     

    질문을 계속해서 읽어봤는데, 어떤 내용을 묻고자 하는지 잘 모르겠습니다…

     

    윈도우폼에서 웹브라우저를 띄운다는 것을 보면, Application에서 웹브라우저를 launch한다는 것 같습니다.

    그런데 그 이후에 input 값을 넣는 것을 모른다고 하셨는데, 이것이

     

    1)C#으로 작성한 Application에서 새롭게 띄운 웹브라우저 창에서 로드하는 HTML input 필드에 값을 어떻게 넣는지 묻는 것인지,

     

    2) 아니면 HTML에서 windows.showmodaldialg()로 띄운 웹브라우저의 창 내의 창에서 input 필드에 값을 어떻게 전달하는지, HTML&Java script 문법을 묻는 것인지,

     

    3) 아니면 서버측 ASP.NET 코드를 묻는 것인지,

     

    즉 어떤 내용을 묻는 것인지, 제가 질문을 이해하기가 어렵네요. 이런 경우엔 구체적인 시나리오나 문제를 단순화한 repro, 또는 구현하고 싶은 예제를 요청하셔야 원하는 것을 알려드릴 수 있을 것 같습니다.. 

     

    제가 문제에 대해 더 알아야 할 것이 있다면 응답 주시면 감사하겠습니다.

    제시해 드린 답변이 도움이 되었기를 바랍니다.

    2011년 8월 25일 목요일 오전 12:57
    중재자
  • 안녕하세요~ 답변을 해주셔서 감사합니다
    네 말씀하신데로 윈도우폼에서 별도의 웹브라우저를 띄워서 launch 하는겁니다

    1)C#으로 작성한 Application에서 새롭게 띄운 웹브라우저 창에서 로드하는 HTML의 input 필드에 값을 어떻게 넣는지 묻는 것인지,
     --> 윈도우 폼에서 별도의 웹브라우저를 띄워 Input필드에 아래와 코드로 제어를 했습니다
         tmpDoc.GetElementById("ID명").SetAttribute("value", "넣을값"); 
        
     
    2) 아니면 HTML에서 windows.showmodaldialg()로 띄운 웹브라우저의 창 내의 창에서 input 필드에 값을 어떻게 전달하는지, HTML&Java script 문법을 묻는 것인지
     --> HTML에서 windows.showmodaldialg()로 띄운 웹브라우저의 창 내의 창에서 input 필드에 값을 어떻게 넣는지 묻는 것입니다
         window.open로 띄워진창에 input필드에 넣는것은 어렵지 않았습니다
         헌데 windows.showmodaldialg() 접근자체를 어떻게 해야하는지요~~ ㅜ.ㅜ


    3) 시나리오(예)
       어느 쇼핑몰사이트에 회원가입을 자동으로 하고자 합니다.
       (실명확인->이름,주민번호,주소,우편번호..기입->완료)

       위의 고객정보의 DB는 가지고 있고 해당 쇼핑몰사이트 회원가입을 수작업으로 하기에 어려움이 있어
       윈도우 폼에서 별도의 웹브라우저(쇼필몰사이트) 띄웁니다
       
       (1)쇼필몰사이트로 이동
       (2)회원가입 : 실명확인 -> 이름,주민번호 Input 자동입력완료
       (3)회원가입 : 이름,전화번호,주소 Input 자동입력
                      이때 주소를 입력하려고 우편번호 버턴을 누릅니다
                      대부분의 사이트는 우편번호 창이 (window.open) 엽니다
                      헌데 제가 자동으로 하고자하는 사이트는
                      우편번호 창이 windows.showmodaldialg() 여는것이어서
                      여기서 막혀버렸습니다.  

    수고하십시오~

    2011년 8월 27일 토요일 오전 6:49
  • 안녕하십니까? 파랑불이 님

    Microsoft MSDN Forum 사이트를 방문해 주셔서 감사합니다.

     

    이와 관련된 이슈사항과 해결 방안을 찾았으나 관련된 내용을 찾을 수 없었습니다.

    원하시는 방식은 지원하지 않는 불가능한 방법으로 보입니다.

     

    제가 문제에 대해 더 알아야 할 것이 있다면 응답 주시면 감사하겠습니다.

     

    2011년 8월 31일 수요일 오전 8:55
    중재자
  • 안녕하세요.

    저도 지금 동일한 문제가 있어.. 방법을 찾고있는데요..

    혹시 해결되셨다면 도움을 받을 수 있을지요?

    jyminc@naver.com

    부탁드립니다.ㅠㅠ

    2017년 6월 11일 일요일 오전 4:01
  • 안녕하세요,

    원하시는 바가, Modal Dialog 창으로 띄운 우편번호 검색창에서 input창에서 입력값(. 도로명주소) 받아 우편번호를 확인하고 창을 닫으면, 우편번호 결과를 parent 페이지에서 받는 것으로 이해하였습니다.

    Modal Dialog창으로 파라미터값을 넘기는 방법은 showModalDialog 두번째 파라미터를 사용합니다.

    . window.showModalDialog("showModalDialog_target.htm", “파라미터값”, "dialogHeight: 500px; dialogWidth: 600px; dialog Dialog");

    Modal Dialog창에서 일련의 로직을 통해 우편번호의 결과값을 얻으면 이를 다시 리턴해야 하는데 이는 returnValue값을 설정합니다.

    . window.returnValue=”06757”;

    다음 그림과 같은 간단한 모습의 샘플을 작성하였습니다.

    도로명주소를 넣은 다음 우편번호 검색 버튼을 누릅니다.

    입력된 도로명 주소가 반영된 Modal Dialog 창이 뜹니다.

    우편번호 검색 버튼을 누르면 입력된 도로명주소에 따라 우편번호를 계산하는 로직이 수행된다고 가정하고, 계산된 우편번호 결과가 표시됩니다.

    Modal Dialog 창을 닫으면 우편번호 결과가 parent 반영됩니다.

    이의 (우편번호 계산 로직 구현을 제외한 )샘플 코드입니다.

    Parent html입니다.

    -------------------------------------------------------------

    <!DOCTYPE html>

    <html>

    <head>

      <title>우편번호 - showModalDialog</title>

    </head>

    <body>

      <form id="oForm">

        도로명주소

        <input type="text" id="roadAddress" value="서초구 남부순환로"/>

        <input type="button" value="우편번호 검색" onclick="fnOpen()" />

        우편번호

        <input type="text" id="postcode" value="우편번호..."/>

      </form>

    <script>

        function fnOpen() {

    oForm.postcode.value=window.showModalDialog("showModalDialog_target.htm",oForm.roadAddress.value,

    "dialogHeight: 500px; dialogWidth: 600px; dialog Dialog");

        }

    </script>

    </body>

    </html>

    -------------------------------------------------------------

    Modal dialog의 html  (showModalDialog_target.htm)입니다.

    -------------------------------------------------------------

    <input type="text" id="roadAddress" value="도로명주소">

    <input type="button" onclick="execPostcode()" value="우편번호 검색">

    <input type="text" id="postcode" value="우편번호 결과">

    <span id="guide" style="color:#999"></span>

    <script>

    window.onload=fnInit;

    function fnInit(){

    window.roadAddress.value=window.dialogArguments;

    window.returnValue=window.postcode.value;

    }

    function execPostcode() {

    window.postcode.value = "06757";

    window.returnValue=window.postcode.value;

    }

    </script>

    -------------------------------------------------------------

    우편번호 계산 로직은 우편번호 DB 공개되어 있으므로 이를 이용하여 계산하거나 기존의 로직을 빌려와 작성할 있을 것입니다.


    유의점: 왜 showModalDialog 호출할 때 세번째 파라미터 내용이 잘못 올라가는 것인지 모르겠네요. 편집기의 문제인 듯 합니다. 실제 입력하려는 값은 다음과 같으니 참고하시기 바랍니다.










    • 편집됨 Jng.Kim 2017년 6월 14일 수요일 오전 2:05
    • 답변으로 표시됨 Boram YiModerator 2017년 6월 14일 수요일 오전 6:09
    2017년 6월 13일 화요일 오후 4:06