Как закрыть окно браузера, не получив приглашение "Вы хотите закрыть это окно"?

Как закрыть окно браузера, не получив сообщение о закрытии этого окна?

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

Ответ 1

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

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

Ответ 2

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

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

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

Страница открытия:

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

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

Закрывающая страница:

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

Удивительно, да?!

Ответ 3

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

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

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

Ответ 4

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

            }
        }
    }

Ответ 5

В теге 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

Ответ 6

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

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

Вложенный window.open должен сделать IE не отображаемым. Вы хотите закрыть это окно.

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

Ответ 7

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

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

Ответ 8

Из здесь:

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

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

Ответ 9

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

Попробуйте это, это работает как шарм!
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

Ответ 10

Создать функцию JavaScript

<script type="text/javascript">
    function closeme() {
        window.open('', '_self', '');
        window.close();
    }
</script>

Теперь напишите этот код и вызовите приведенную выше функцию JavaScript

<a href="Help.aspx" target="_blank" onclick="closeme();">Help</a>

Или просто:

<a href="" onclick="closeme();">close</a>

Ответ 11

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

Ответ 12

window.opener=window;
window.close();

Ответ 13

Лучшее решение, которое я нашел:

this.focus();
self.opener=this;
self.close();

Ответ 14

Браузер жалуется, потому что вы используете JavaScript для закрытия окна, которое не было открыто с помощью JavaScript, т.е. window.open('foo.html');.

Ответ 15

Поместите следующий код в ASPX.

<script language=javascript>
function CloseWindow() 
{
    window.open('', '_self', '');
    window.close();
}
</script>

Поместите следующий код в код за кликом.

string myclosescript = "<script language='javascript' type='text/javascript'>CloseWindow();</script>";

Page.ClientScript.RegisterStartupScript(GetType(), "myclosescript", myclosescript);

Если у вас нет обработки перед закрытием, вы можете непосредственно поместить следующий код в сам ASPX в тег clickTick.

OnClientClick="CloseWindow();"

Надеюсь, что это поможет.

Ответ 16

Это будет работать:

<script type="text/javascript">
function closeWindowNoPrompt()
{
window.open('', '_parent', '');
window.close();
}
</script>

Ответ 17

В моей ситуации следующий код был встроен в php файл.

var PreventExitPop = true;
function ExitPop() {
  if (PreventExitPop != false) {
    return "Hold your horses! \n\nTake the time to reserve your place.Registrations might become paid or closed completely to newcomers!"
  }
}
window.onbeforeunload = ExitPop;

Итак, я открыл консоль и написал следующую

PreventExitPop = false

Это решило проблему. Итак, узнайте код JavaScript и найдите переменную и назначьте их соответствующему "значению", которое в моем случае было "false"

Ответ 18

Я собираюсь опубликовать это, потому что это то, что я сейчас использую для своего сайта, и работает как в Google Chrome, так и в IE 10 без каких-либо всплывающих сообщений:

<html>
    <head>
    </head>
    <body onload="window.close();">
    </body>
</html>

У меня есть функция на моем сайте, которую я хочу запустить, чтобы сохранить переменную on/off в сеансе без прямого перехода на новую страницу, поэтому я просто открываю крошечную всплывающую веб-страницу. Затем веб-страница немедленно закрывается функцией onload="window.close();".