'beforeunload google Chrome Problème
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 est-il une alternative pour qui ?
En fait ce que je suis en train de faire est de vous connecter détails à chaque fois que l'utilisateur essaie 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 sous Firefox, mais pas dans Chrome
Les dialogues sont bloqués pour
Google Chrome équipe vous recommande fortement de pas l'utilisation de JavaScript boîtes de dialogue (
onbeforeunload
en Chrome parce que Chrome a choisi de le faire.Google Chrome équipe vous recommande fortement de pas l'utilisation de JavaScript boîtes de dialogue (
alert()
, confirm()
, et prompt()
) puisqu'ils déclarent qu'ils n'endommagent les utilisateurs, de sorte que c'est probablement la raison pour laquelle ils le bloquer sans d'abord une interaction de l'utilisateur: developers.google.com/web/updates/2017/03/dialogs-policy Ils recommandent d'utiliser l'API de Notification: developer.mozilla.org/en-US/docs/Web/API/Notifications_API
OriginalL'auteur skos | 2012-05-21
Vous devez vous connecter pour publier un commentaire.
Retourner une chaîne de caractères à la place:
Je ne connais pas de solution. J'ai juste essayé un peu de tentatives d'envoi asynchrone de données, mais le trafic est bloqué par google Chrome.
La droite. Même moi, je ne peux pas obtenir ce travail dans google Chrome. Merci pour vos efforts.
Parce que Chrome et Firefox nécessite une action de l'utilisateur afin de constater les beforeunload.
OriginalL'auteur Sampson
Essayer ci-dessous:
Au 09/10/17 , Chrome, Version 61.0.3163.100 (Officiel) (32-bit), il ne semble pas être :/
OriginalL'auteur xdazz
J'ai dû l'inclure dans un jQuery(document).prêt pour qu'il fonctionne dans chrome
OriginalL'auteur user1703776
Essayez ceci pour tous les Navigateurs:-
OriginalL'auteur Abhishek Salgaonkar
Essayez ceci:
}
Il semble que tant que vous retourner une chaîne de caractères pour cet événement à la fin du corps de la fonction, vous pouvez exécuter du code avant cette chaîne.
OriginalL'auteur Marcelo Noronha
Si vous avez besoin d'envoyer des données analytiques juste avant de décharger le document, choisissez navigator.sendBeacon() méthode au lieu de XMLHttpRequest.
sendBeacon() la méthode est conçue pour fonctionner de non-blocage de l'envoi d'une petite quantité de données.
Mais vérifiez canIuse rapport en premier, car la méthode n'est pas pris en charge à l'échelle mondiale encore.
OriginalL'auteur miro