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.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.
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?");
})
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: -)
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>
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) {
}
}
});
}
}
};
});