카테고리 없음

VB6 - Javascript로 WebBrowser 창 닫기 : 오브젝트의 WindowClosiing()

saltdoll 2018. 3. 23. 03:53
반응형

Visual Basic 6 에 Web Browser 오브젝트를 이용해서 웹페이지가 닫히면, 상위의 Form을 Hide하는 것을 만들어 보자.


종종 웹을 잘 모르는 개발자들이 윈폼에 웹 페이지를 띄우고, 

해당 페이지를 창 닫기 처리를 해달라고 하면, 어려워 할 때가 있다.


결국은 답답한 내가, 찾아서 예제를 만들어 보냈다는;;;



(1) WebBrowe 오브젝트 추가하기
























"Microsoft Internet Controls" 체크하고 확인을 누르면, 웹브라우저 오브젝트가 표시됩니다.

 

WebBrowser를 누르고, 폼창에 마우스를 드래그해서 오브젝트를 추가한다.

그렇게 하면, Form에 WebBrower을 추가합니다.


Form1 (Code) 

Private Sub Form_Load()

 WebBrowser1.Navigate "http://sales.edit.com/test.html"

End Sub


Private Sub WebBrowser1_WindowClosing(ByVal IsChildWindow As Boolean, Cancel As Boolean)

 Form1.Hide

End Sub


웹 페이지 소스를 다음과 같이 만들어 줍니다.

test.html (소스)

<button onclick="winClose()">창닫기</button>

<script>

function winClose(){

  window.opener='nothing';

  window.open('','_parent','');

  window.close();

}

</script>


참고: [IE] 지금 보고 있는 웹페이지를 닫을지를 묻는 창이 안뜨도록 하는 소스


위 소스에서 self.close()나 window.close()만 사용하게 되면, 창을 닫겠냐는 컴펌 창이 뜹니다. 

보통 Close()를 사용할때 물어보길 원할때도 있지만 대부분은, 조용히 닫혀지기를 원한다. 이때 사용가능한 편법이 있다.. 닫혀지는곳의 opener를 닫혀지는곳 자신이나, null, ""등의 값으로 설정하면된다.. 말이 좀 어렵다.. 직접 보도록하자.


자기자신을 닫을 때 => window.open("about:blank","_self").close();

자기 자신에 윈도우를 하나열어서 자기 자식윈도우로 만든다음에 바로 닫아버린다.


그렇다면 반대로 팝업이나 Open된 창에서 부모창을 닫을 때는 => opener.open('about:blank','_self').close();

부모창에다 열고 닫아버리면 된다...

참고2: JavaScript에서 close()함수를 사용하자! 총정리!







반응형
도움이 되셨다면 하트모양의 "♡ 공감"을 눌러주시면 큰 격려가 됩니다.
(로그인하지 않으셔도 가능)