Pourriez-vous s'il vous plaît me donner le meilleur moyen de détecter niquement événement de fermeture de fenêtre pour tous les navigateurs par jquery?
Je veux dire en cliquant sur le bouton X dans le navigateur ou window.close (), ne signifie pas F5, soumission de formulaire, window.location ou lien. Je cherchais de nombreux sujets mais je n'ai pas trouvé le bon chemin.
Merci beaucoup pour votre soutien.
Il n'y a aucun événement spécifique pour capturer l'événement de fermeture du navigateur.
Vous ne pouvez capturer qu'au déchargement de la page actuelle.
Par cette méthode, elle sera effectuée lors de l'actualisation/navigation dans la page actuelle.
Même le calcul de la position X Y de l'événement de la souris ne vous donne pas de bons résultats.
Vous pouvez utiliser:
$(window).unload(function() {
//do something
}
Unload () est déconseillé dans jQuery version 1.8, donc si vous utilisez jQuery> 1.8, vous pouvez utiliser même beforeunload à la place.
L'événement beforeunload se déclenche chaque fois que l'utilisateur quitte votre page pour une raison quelconque.
$(window).on("beforeunload", function() {
return confirm("Do you really want to close?");
})
La méthode unload () était déconseillée dans jQuery version 1.8.
donc si vous utilisez des versions antérieures à 1.8
puis utilisez -
$(window).unload(function(){
alert("Goodbye!");
});
et si vous utilisez la version 1.8 et supérieure
puis utilisez -
window.onbeforeunload = function() {
return "Bye now!";
};
j'espère que cela fonctionnera :-)
Il n'y a aucun événement spécifique pour capturer l'événement de fermeture du navigateur. Mais nous pouvons détecter par les positions du navigateur 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>
Combinez l'événement mousemove et window.onbeforeunload: - J'ai utilisé pour définir TimeOut pour la table d'audit.
$(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) {
}
}
});
}
}
};
});