Detectar fechar o evento do windows pelo Jquery

pode dar-me a melhor maneira de detectar apenas o evento de fecho de janelas para todos os navegadores por jquery?

quero dizer carregar no botão X no navegador ou na janela.fechar (), não significando F5, apresentação do formulário, janela.localização ou ligação. Eu estava procurando por muitos fios, mas não encontraram o caminho certo.

Muito obrigado pelo apoio.

Author: mjimcua, 2013-05-23

5 answers

Não existe nenhum evento específico para capturar o evento de fecho do navegador.

Só se pode capturar ao descarregar a página actual.

Por este método, ele será efetuado enquanto refrescando / navegando a página atual.

Mesmo calcular a posição X Y do evento do mouse não lhe dá um bom resultado.

 8
Author: NamingException, 2013-05-23 09:35:57

Pode usar:

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

O descarregamento() está desactualizado na versão 1.8 do jQuery, por isso, se usar o jQuery > 1.8, poderá usar mesmo antes do descarregamento.

O EVENTO antes do Carregamento dispara sempre que o utilizador sai da sua página por qualquer razão.

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

Fonte janela do navegador fechar o evento

 33
Author: mjimcua, 2018-03-11 09:45:49
O método do descarregamento foi depreciado na versão 1.8 do jQuery.

Se estiver a utilizar versões com mais de 1, 8

Depois utilizar -

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

E se estiver a utilizar 1, 8 ou mais

Depois utilizar -

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

Espero que isto funcione: -)

 9
Author: Rahul Vyas, 2013-12-06 07:35:58

Não existe nenhum evento específico para capturar o evento de fecho do navegador. Mas podemos detectar pelas posições do navegador 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
Author: user3559718, 2015-09-16 15:40:44

Combine o mousemove e a janela.evento onbefore unload: - Eu usei para definir o tempo limite para a tabela de auditoria.

 $(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) {
                            }
                        }
                    });
                }
            }
        };
  });
 1
Author: Harris Yer, 2016-05-13 08:40:09