테스트 사이트 - 개발 중인 베타 버전입니다

창닫기 되려면 어떤 코드가 좋을까요? 채택완료

해피정 7년 전 조회 22,054

http://happyjung.com/test_win.php" target="_blank">http://happyjung.com/test_win.php

 

일반 페이지에서 창닫기를 하려고 합니다.

팝업이나 그외 새창으로 뭔가를 수행한후 그 창을 닫고자 할때가 있잖아요

위 링크에 일반적으로 많이 사용하는 코드를 나열해봤는데요

IE 에서는 모두 문제없이 되지만, 그외 브라우저에서는 작동을 하지 않아서요

범용적으로 잘 적용될 수 있는 창닫기 코드나 방법을 아시는분 공유 부탁드립니다.

 

댓글을 작성하려면 로그인이 필요합니다.

답변 7개

채택된 답변
+20 포인트
B
7년 전

질문 본문에 팝업이나 그외 새창이라 되어있어서

직접 주소를 찍어보진 않았네요

구글에 검색해보니  보안때문에 크롬 정책인듯 하네요 

https://code.i-harness.com/ko/q/12d8859" target="_blank">https://code.i-harness.com/ko/q/12d8859

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

해피정
7년 전
Chrome / Opera / FireFox 는 안되고
IE / Edge / Safari 는 되고 이렇게 정리가 되네요.
알려주신 링크를 보니 맘이 편해졌어요. 안되는게 맞구나 하는...

댓글을 작성하려면 로그인이 필요합니다.

플래토
7년 전

https://developer.mozilla.org/en-US/docs/Web/API/Window/close" target="_blank">https://developer.mozilla.org/en-US/docs/Web/API/Window/close

 

 

function winClose() {

    window.close();

}

 

로 안 닫힐경우

</p>

<p><html></p>

<p><head></p>

<p><script></p>

<p>function closeMe() {</p>

<p>    var win=window.open("","_self");</p>

<p>    win.close();</p>

<p>}</p>

<p></script></p>

<p> </p>

<p></head></p>

<p><body></p>

<p>    <form></p>

<p>        <input type="button" name="Close" onclick="closeMe()" /></p>

<p>    </form></p>

<p></body> </p>

<p></html> </p>

<p>

 

로 해보세요

 

출처 : https://groups.google.com/a/chromium.org/forum/#!topic/chromium-apps/vnRRgPhEXyc" target="_blank">https://groups.google.com/a/chromium.org/forum/#!topic/chromium-apps/vnRRgPhEXyc

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

플래토
7년 전
http://www.uhoon.co.kr/Javascript/1171

여기도 동일한 경우를 서로 논의했네요
해피정
7년 전
링크를 눌러서 창열기를 하지 않고 주소줄에 http://happyjung.com/test_win.php 를 붙여넣고
페이지를 열은 경우에는 창닫기(웹페이지 닫기)가 작동하지 않습니다.
댓글로 주신 코드도 추가해서 테스트 해봤는데 역시 안되네요

댓글을 작성하려면 로그인이 필요합니다.

7년 전

</p>

<p><button id="btn_close" type="button">창닫기</button></p>

<p><script></p>

<p>$(function() {</p>

<p>  $("#btn_close").on('click', function() {</p>

<p>    self.close();</p>

<p>  });</p>

<p>});</p>

<p></script></p>

<p>

를 추천합니다. http://jsunnylab.tistory.com/38" target="_blank">http://jsunnylab.tistory.com/38

http://naradesign.net/wp/2007/07/11/123/" target="_blank">http://naradesign.net/wp/2007/07/11/123/

 

<a> 태그를 쓰고자 한다면,

<a href="#" onclick="javascript:self.close();">창닫기</a>

보다는

<a href="javascript:;" onclick="self.close();">창닫기</a>

를 추천합니다. 그누보드에서는 이방식을 많이 쓰더라구요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

해피정
7년 전
크롬에서 F12 를 통한 에러메시지가 아래와 같습니다.
Scripts may close only the windows that were opened by it.
즉, 창닫기 페이지가 링크에 의해서 열려진 창이 아니기 때문에 작동안된다는 뜻인듯 싶네요

현재창이 열려진 대상이 있을땐 창닫기 문제가 없는데
그 대상이 없이, 주소창에 직접 페이지를 열려진 상태에서는 IE 만 창닫기가 가능합니다.

댓글을 작성하려면 로그인이 필요합니다.

해피정
7년 전

아아... 이유를 확인했습니다.

링크를 눌러서 열린 창 상태에서 닫기를 하면 정상작동하는데

링크를 복사해서 개별적으로 페이지를 열고, 그 상태에서 닫기를 누르면 오류가 뜨네요

 

즉, IE 는 부모창 여부와 관계없이 닫기를 수행하고

그외 것들은 부모창에서 링크를 통해서 열린 새창일때만 닫기가 수행되는....

 

링크를 통한 새창이 아닌, 그냥 브라우저 주소창에 입력후 페이지를 연 상태에서 닫기가 되도록 하려면

어떻게 하는것이 좋을까요?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

뽁스
7년 전
https://stackoverflow.com/questions/5455426/is-it-possible-to-close-a-browser-window-using-javascript

아까 댓글 달려다가 말았는데.. 여기 답변 확인해보세요~
추천수6개 되어 있는 답변

설정을 건드려야 되는걸로 봐서 자스 자체로 방법이 없을 듯 보이네요.
뽁스
7년 전
참고로 크롬도 F12 개발자 도구 열어 놓고 닫기 버튼 클릭하면 에러 뜹니다.

댓글을 작성하려면 로그인이 필요합니다.

플래토
7년 전

팝업으로 처리하신것을 창닫기하실때

가급적 top.close()와 같은것은 피하시는게 좋습니다.

 

범용적인 함수로 만들어 사용할수가 없거든요

 

window 객체를 닫게 만드는게 상책입니다.

알려주신링크가 IE외의 다른브라우저에서 안먹는경우

컴 문제가 맞는거 같구요

 

다른 스크립트에 혼용된것이 안먹는경우는 스크립트 어딘가에서 문법오류라던지..이유가 있을것 같습니다.

F12 개발자도구로 잘 살펴보심이...

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

해피정
7년 전
댓글을 보고 혹시나 하는 마음에 링크를 통해 열었더니 정상적으로 닫히네요

댓글을 작성하려면 로그인이 필요합니다.

Rido
7년 전

버전 65.0.3325.51(공식 빌드) beta (64비트)

이것저것 몽땅 다 잘 먹힙니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

해피정
7년 전
아 컴퓨터를 다시 밀때가 된건가요...
자꾸 느려짐때문에 머리아픈데...
잘 되시는거군요. 다른 컴퓨터에서 마지막으로 테스트 해봐야겠네요.
감사합니다.
해피정
7년 전
어흑... 옆컴퓨터에서 크롬 으로 테스트 했는데 안닫혀요 ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

B
7년 전

그 외 브라우져라는게 ...

크롬 파폭 둘다 잘되는데요~!

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

해피정
7년 전
헉.. 잘 닫히나요?
저는 IE 외에는 모두 안닫혀요, ㅠㅠ
Chrome 64.0.3282.140 , FireFox 58.0.2 , Opera 51.0.230.26 을 사용중입니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인