Q&A

  • WebBrowser 에서 클릭이벤트를..
저는 지금 델파이로 웹브라우저관련해서 프로그램을 하려고 하고 있습니다.
지금 하려고 하는일은 폼안에 WebBrowser 컨트롤을 text 를 클릭한 순간 새로운 브라우저로 띄우고 또 클릭한 URL정보를 표시하려고 합니다. 몇일동안 아무리 고민해도 안되길래 이렇게 질문을 올립니다.

방법이나 아님 간단한 예제를 보내주시면 감사하겠습니다. 고수님들 부탁드립니다.
5  COMMENTS
  • Profile
    한원희 2003.07.08 08:00
    안녕하세요. 한원희입니다.

    제목 그대로 OnBeforeNavigate2에서 해결하시면 될것 같습니다.
    그 이벤트는 URL링크 및 폼을 서브밋했을 경우에 제일 처음 발생하는 이벤트로, 해당 URL로 이동할 것인지 등을 결정해 줄 수가 있습니다.
    이벤트의 파라미터로 넘어 오는 것들 중에서 URL 값을 출력해주고, Cancel:=true;로 설정하여 현재 창에서 네비게이션 되는 것을 막구요, 받은 URL을 가져다가 새창을 띄운 후, 그곳에 저장해 놓았던 URL로 네비게이션하도록 하면 되겠네요.

  • Profile
    우민석 2003.07.08 20:45
    답변 감사합니다.
    한가지만 더 부탁드리겠습니다
    그런데 저도 OnBeforeNavigate2 에서 해결하려고 햇는데요.

    --- html 소스

    <a ref="1.html" target="_blank">aaa</a>

    --- html

    이부분을 클릭하면 OnBeforeNavigate2 이벤트가 호출이 안되고 OnNewWindow2 이벤트가 호출이 되는것 같습니다.

    이부분에서도 URL 을 얻어내고 싶어서 질문을 다시 드립니다.
    죄송하지만 한번만 더 부탁드리겠습니다.
  • Profile
    김병곤 2003.07.08 23:16
    procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
      var ppDisp: IDispatch; var Cancel: WordBool);
    이 이벤트에서 ppDisp인터페이스를 이용해서 새창에 뜰 웹페이지의 정보를
    이용할수 있습니다.
    새창을 뜨지 않게 하려면 Cancel:= True를 주시면 뜨지 않습니다.


  • Profile
    우민석 2003.07.09 23:34
    procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
      var ppDisp: IDispatch; var Cancel: WordBool);

    이 이벤트에서 ppDisp인터페이스를 이용해서 새창에 뜰 웹페이지의 정보를
    얻을수 있다고 하셔서 IDispatch 관련해서 찾아보았는데 초보라 넘 이해하기가 힘들어서 이렇게 다시 질문을 올리게 되엇습니다.

    ppDisp인터페이스를 이용하는 방법을 갈켜 주시면 감사하겠습니다.
    간단한 예제라도 ..

    계속 귀찮게 해 드려서 죄송합니다. 델파이를 시작한지 얼마안되는 초보라
    ㅡ.ㅡ
  • Profile
    김병곤 2003.07.10 00:15
    http://www.euromind.com/iedelphi/
    위의 사이트를 참고하세요.