Как я могу закрыть окно браузера, не получая подсказку «Хотите закрыть это окно»? - PullRequest
75 голосов
/ 12 сентября 2008

Как я могу закрыть окно браузера без получения Хотите закрыть это окно приглашение?

Запрос появляется, когда я использую функцию window.close();.

Ответы [ 18 ]

76 голосов
/ 28 апреля 2010
window.open('', '_self', ''); window.close();

Это работает для меня.

53 голосов
/ 11 сентября 2009

Мой друг ... есть способ, но "хак" не начинает его описывать Вы должны в основном использовать ошибку в IE 6 и 7.

Работает каждый раз!

Вместо вызова window.close(), перенаправьте на другую страницу.

Открытие страницы:

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

Перенаправить на другую страницу. Это обманывает IE, позволяя вам закрыть браузер на этой странице.

Закрытие страницы:

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

Круто, а?!

46 голосов
/ 20 июля 2014

Сценарии не разрешены , чтобы закрыть окно, открытое пользователем. Это считается угрозой безопасности. Хотя это не соответствует ни одному стандарту, все производители браузеров следуют этому ( Mozilla docs ). Если это происходит в некоторых браузерах, это ошибка безопасности, которая (в идеале) исправляется очень быстро.

Ни один из хаков в ответах на этот вопрос больше не работает, и если кто-то придумает еще один грязный хак, в конечном итоге он тоже перестанет работать.

Я предлагаю вам не тратить энергию на борьбу с этим и использовать метод, который браузер так услужливо дает вам & mdash; спросите пользователя, прежде чем, по-видимому, вывести его страницу из строя.

31 голосов
/ 07 мая 2013

Вот функция 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){

            }
        }
    }
12 голосов
/ 13 декабря 2010

В теге body:

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

Чтобы закрыть окно:

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

Протестировано в Safari 4.0.5, FF для Mac 3.6, IE 8.0 и FF для Windows 3.5

11 голосов
/ 10 апреля 2013

Это работает в Chrome 26, Internet Explorer 9 и Safari 5.1.7 ( без использования вспомогательной страницы, аля ответа Ника):

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

Вложенное window.open позволяет IE не отображать Вы хотите закрыть это окно .

К сожалению, Firefox невозможно закрыть окно.

7 голосов
/ 01 сентября 2011

В целях безопасности окно может быть закрыто только в JavaScript, если оно было открыто JavaScript. Чтобы закрыть окно, вы должны открыть новое окно с _self в качестве цели, которое перезапишет ваше текущее окно, а затем закроет его (что можно сделать, поскольку оно было открыто с помощью JavaScript).

window.open('', '_self', '');
window.close();
6 голосов
/ 12 сентября 2008

С здесь :

<a href="javascript:window.opener='x';window.close();">Close</a>

Вам нужно установить window.opener на что-то другое, иначе он будет жаловаться.

5 голосов
/ 18 сентября 2013

Из-за улучшений безопасности в IE вы не можете закрыть окно, если оно не открыто скриптом. Таким образом, можно обойти браузер и подумать, что эта страница открыта с помощью скрипта, а затем закрыть окно. Ниже приведена реализация.

Попробуйте, это работает как шарм!
JavaScript закрывает текущее окно без запроса IE

<script type="text/javascript">
function closeWP() {
 var Browser = navigator.appName;
 var indexB = Browser.indexOf('Explorer');

 if (indexB > 0) {
    var indexV = navigator.userAgent.indexOf('MSIE') + 5;
    var Version = navigator.userAgent.substring(indexV, indexV + 1);

    if (Version >= 7) {
        window.open('', '_self', '');
        window.close();
    }
    else if (Version == 6) {
        window.opener = null;
        window.close();
    }
    else {
        window.opener = '';
        window.close();
    }

 }
else {
    window.close();
 }
}
</script>

JavaScript закрывает текущее окно без запроса IE

4 голосов
/ 18 февраля 2018

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

Извините, что немного опоздал, но я нашел решение, по крайней мере, для моего случая. Протестировано на Safari 11.0.3 и Google Chrome 64.0.3282.167

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...