J'ai ce simple morceau de code -
$(window).bind('beforeunload', function(){
alert("Good Bye")
});
Fonctionne très bien avec Firefox, IE8 mais pas dans Chrome. Est-ce un problème connu ou existe-t-il une alternative à cela?
En fait, ce que j'essaie de faire est de consigner les détails chaque fois que l'utilisateur tente de fermer le navigateur.
function LogTime()
{
jQuery.ajax({
type: "POST",
url: "log.php",
data: "",
cache: false,
success: function(response)
{
}
);
}
$(window).bind('beforeunload', function(){
LogTime();
});
Cela fonctionne bien dans Firefox, mais pas dans Chrome
Renvoyer une chaîne à la place:
$(window).on('beforeunload', function(){
return "Good bye";
});
Essayez ci-dessous:
$(window).on('beforeunload', function(){
return "Good Bye";
});
Je devais l'inclure dans un jQuery (document). Déjà pour le faire fonctionner en chrome
<script>
jQuery(document).ready(
function () {
jQuery(window).bind('beforeunload',
function (e) {
[code here]
}
);
}
);
</script>
Essayez ceci pour tous les navigateurs: -
window.addEventListener("beforeunload", function (e) {
var confirmationMessage = "\o/";
e.returnValue = confirmationMessage;
return confirmationMessage;
});
Essaye ça:
function LogTime(){
jQuery.ajax({
type: "POST",
url: "log.php",
data: "",
cache: false,
success: function(response){
}
});
}
$(window).bind('beforeunload', function(){
LogTime();
return "You're leaving?";
});
Il semble que tant que vous retournez une chaîne pour cet événement à la fin du corps de la fonction, vous pouvez exécuter le code avant cette chaîne.
Si vous devez envoyer des données analytiques juste avant de décharger le document, choisissez navigator.sendBeacon () method à la place de XMLHttpRequest.
la méthode sendBeacon () est conçue pour effectuer un envoi sans blocage d'une petite quantité de données.
Mais vérifiez canIuse report first, car la méthode n’est pas encore supportée globalement.