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

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

QA

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

본문

http://happyjung.com/test_win.php

 

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

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

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

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

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

 

이 질문에 댓글 쓰기 :

답변 7

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

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

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

https://code.i-harness.com/ko/q/12d8859

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

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

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

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

아  컴퓨터를 다시 밀때가 된건가요...
자꾸 느려짐때문에 머리아픈데...
잘 되시는거군요.  다른 컴퓨터에서 마지막으로 테스트 해봐야겠네요.
감사합니다.

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

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

 

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

 

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

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

컴 문제가 맞는거 같구요

 

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

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

 

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

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

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

 

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

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

 

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

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

https://stackoverflow.com/questions/5455426/is-it-possible-to-close-a-browser-window-using-javascript

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

설정을 건드려야 되는걸로 봐서 자스 자체로 방법이 없을 듯 보이네요.


<button id="btn_close" type="button">창닫기</button>
<script>
$(function() {
  $("#btn_close").on('click', function() {
    self.close();
  });
});
</script>

를 추천합니다. http://jsunnylab.tistory.com/38

http://naradesign.net/wp/2007/07/11/123/

 

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

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

보다는

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

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

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

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

https://developer.mozilla.org/en-US/docs/Web/API/Window/close

 

 

function winClose() {

    window.close();

}

 

로 안 닫힐경우


<html>
<head>
<script>
function closeMe() {
    var win=window.open("","_self");
    win.close();
}
</script>
 
</head>
<body>
    <form>
        <input type="button" name="Close" onclick="closeMe()" />
    </form>
</body> 
</html> 

 

로 해보세요

 

출처 : https://groups.google.com/a/chromium.org/forum/#!topic/chromium-apps/vnRRgPhEXyc

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

답변을 작성하시기 전에 로그인 해주세요.
전체 2,026
QA 내용 검색
filter #css ×

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT