[javascript] “이 창을 닫으시겠습니까?”프롬프트를받지 않고 브라우저 창을 닫으려면 어떻게해야합니까?

이 창을 닫으 시겠습니까? 프롬프트 받지 않고 브라우저 창 을 닫으려면 어떻게해야합니까?

window.close();기능을 사용할 때 프롬프트가 표시됩니다 .



답변

window.open('', '_self', ''); window.close();

이것은 나를 위해 작동합니다.


답변

내 친구 … 방법이 있지만 “해킹”은 그것을 설명하기 시작하지 않습니다. 기본적으로 IE 6 및 7의 버그를 악용해야합니다.

매번 작동합니다!

을 호출하는 대신 window.close()다른 페이지로 리디렉션합니다.

시작 페이지 :

alert("No whammies!");
window.open("closer.htm", '_self');

다른 페이지로 이동합니다. 이것은 IE를 속여이 페이지에서 브라우저를 닫도록합니다.

마감 페이지 :

<script type="text/javascript">
    window.close();
</script>

멋지죠?!


답변

스크립트는 사용자가 연 창을 닫을 수 없습니다 . 이것은 보안 위험으로 간주됩니다. 어떤 표준도 아니지만 모든 브라우저 공급 업체는이를 따릅니다 ( Mozilla 문서 ). 일부 브라우저에서 이런 일이 발생하면 (이상적으로) 매우 빠르게 패치되는 보안 버그입니다.

이 질문에 대한 답변의 해킹은 더 이상 작동하지 않으며 누군가가 다른 더러운 해킹을 생각해 내면 결국 작동을 멈출 것입니다.

이 문제를 해결하기 위해 에너지를 낭비하지 마시고 브라우저가 유용하게 제공하는 방법을 수용 할 것을 제안합니다 . 페이지가 충돌하는 것처럼 보이기 전에 사용자 에게 물어보십시오 .


답변

다음은 Prompt 또는 Warning없이 브라우저를 닫는 데 사용하는 Javascript 기능입니다. Flash에서도 호출 할 수 있습니다. html 파일에 있어야합니다.

    function closeWindows() {
         var browserName = navigator.appName;
         var browserVer = parseInt(navigator.appVersion);
         //alert(browserName + " : "+browserVer);

         //document.getElementById("flashContent").innerHTML = "<br>&nbsp;<font face='Arial' color='blue' size='2'><b> You have been logged out of the Game. Please Close Your Browser Window.</b></font>";

         if(browserName == "Microsoft Internet Explorer"){
             var ie7 = (document.all && !window.opera && window.XMLHttpRequest) ? true : false;
             if (ie7)
             {
               //This method is required to close a window without any prompt for IE7 & greater versions.
               window.open('','_parent','');
               window.close();
             }
            else
             {
               //This method is required to close a window without any prompt for IE6
               this.focus();
               self.opener = this;
               self.close();
             }
        }else{
            //For NON-IE Browsers except Firefox which doesnt support Auto Close
            try{
                this.focus();
                self.opener = this;
                self.close();
            }
            catch(e){

            }

            try{
                window.open('','_self','');
                window.close();
            }
            catch(e){

            }
        }
    }


답변

이것은 Chrome 26, Internet Explorer 9 및 Safari 5.1.7에서 작동합니다 ( 도우미 페이지를 사용 하지 않고 Nick의 대답).

<script type="text/javascript">
    window.open('javascript:window.open("", "_self", "");window.close();', '_self');
</script>

중첩 window.open은 IE 가이 창을 닫으시겠습니까? 프롬프트 표시 하지 않도록하는 입니다.

불행히도 Firefox에서 창을 닫는 것은 불가능합니다.


답변

본문 태그에서 :

<body onload="window.open('', '_self', '');">

창을 닫으려면 :

<a href="javascript:window.close();">

Safari 4.0.5, Mac 3.6 용 FF, IE 8.0 및 Windows 3.5 용 FF에서 테스트되었습니다.


답변

보안상의 이유로 창은 JavaScript로 열린 경우에만 JavaScript에서 닫을 수 있습니다. 창을 닫으 _self려면 현재 창을 덮어 쓰는 대상으로 새 창을 열고 해당 창 을 닫아야합니다 (JavaScript를 통해 열렸 기 때문에 수행 할 수 있음).

window.open('', '_self', '');
window.close();