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

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

QA

SIR 제작의뢰 - 견적무료/익명보정/호스팅, DB 이전/단기개발. 이젠 ' 의뢰인'이 원하는 '제작자'에게만 연락처를 알릴 수 있습니다.

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

본문

http://happyjung.com/test_win.php

 

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

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

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

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

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

 

이 글을 내 페이스북 계정으로 보내기 이 글을 내 트위터 계정으로 보내기 이 글을 내 구글플러스 계정으로 보내기

이 질문에 댓글 쓰기 :

스폰서링크

답변 7

채택됨

BlueAngel님의 답변

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

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

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

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

주소복사
채택됨
답변의 댓글

BlueAngel님의 답변

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

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

주소복사
답변의 댓글

Rido님의 답변

버전 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 를 붙여넣고
페이지를 열은 경우에는 창닫기(웹페이지 닫기)가 작동하지 않습니다.
댓글로 주신 코드도 추가해서 테스트 해봤는데 역시 안되네요
답변을 작성하시기 전에 로그인 해주세요.
전체 61,034 | RSS
고마운 분의 도움으로 질문을 해결하셨다면, 채택을 눌러서 감사의 마음을 전하세요.
어떻게 질문해야 할지 모른다면 질문하는 방법을 읽어 보신후 질문해 보세요.
QA 내용 검색

회원로그인

진행중 포인트경매

  1. 모던웹사이트제작, HTML5 CSS3

    참여2 회 시작18.05.23 09:55 종료18.05.28 09:55
  2. (서버이전기념) 앱코 해커 K2000 블랙 청축 or 적축

    참여49 회 시작18.05.21 14:23 종료18.05.26 23:23

(주)에스아이알소프트 (06253) 서울특별시 강남구 도곡로1길 14, 6층 624호 (역삼동, 삼일프라자) 대표메일:admin@sir.kr
사업자등록번호:217-81-36347 대표:홍석명 통신판매업신고번호:2014-서울강남-02098호 개인정보보호책임자:이총

© SIRSOFT