Подтвердить что ты не робот

Обнаружение закрытия событий Windows JQuery

Не могли бы вы дать мне лучший способ определить только событие закрытия окна для всех браузеров по jquery?

Я имею в виду нажатие кнопки X в браузере или window.close(), не означая F5, отправку формы, window.location или ссылка. Я искал много потоков, но не нашел правильный путь.

Большое спасибо за поддержку.

4b9b3361

Ответ 1

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

Вы можете захватывать только при выгрузке текущей страницы.

Этот метод будет выполняться при обновлении/навигации по текущей странице.

Даже вычисление X Y положения события мыши не дает вам хорошего результата.

Ответ 2

Вы можете использовать:

$(window).unload(function() {
    //do something
}

Unload() устарел в jQuery версии 1.8, поэтому, если вы используете jQuery > 1.8, вы можете использовать даже beforeunload вместо этого.

Событие beforeunload срабатывает всякий раз, когда пользователь покидает вашу страницу по любой причине.

$(window).bind("beforeunload", function() { 
    return confirm("Do you really want to close?"); 
})

Источник закрыть окно браузера

Для последних версий jQuery рекомендуется использовать .on() вместо .bind()

Ответ 3

Метод unload() устарел в jQuery версии 1.8.

поэтому, если вы используете версии старше 1.8

затем используйте -

$(window).unload(function(){
alert("Goodbye!");
});

и если вы используете 1,8 и выше

затем используйте -

window.onbeforeunload = function() {
    return "Bye now!";
};

надеюсь, что это сработает: -)

Ответ 4

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

<script type="text/javascript">
$(document).ready(function() {
  $(document).mousemove(function(e) {
    if(e.pageY <= 5)
    {
        //this condition would occur when the user brings their cursor on address bar 
        //do something here 
    }
  });
});
</script>

Ответ 5

Объединить событие mousemove и window.onbeforeunload: - Я использовал для установки TimeOut для таблицы аудита.

 $(document).ready(function () {
 var checkCloseX = 0;
        $(document).mousemove(function (e) {
            if (e.pageY <= 5) {
                checkCloseX = 1;
            }
            else { checkCloseX = 0; }
        });

        window.onbeforeunload = function (event) {
            if (event) {
                if (checkCloseX == 1) {

                    //alert('1111');
                    $.ajax({
                        type: "GET",
                        url: "Account/SetAuditHeaderTimeOut",
                        dataType: "json",
                        success: function (result) {
                            if (result != null) {
                            }
                        }
                    });
                }
            }
        };
  });