Javascript savoir quand l'onglet est fermé
nemolovich
Messages postés
83
Date d'inscription
Statut
Membre
Dernière intervention
-
nemolovich Messages postés 83 Date d'inscription Statut Membre Dernière intervention -
nemolovich Messages postés 83 Date d'inscription Statut Membre Dernière intervention -
Salut,
Voila j'aimerais savoir si il y a moyen de récupérer un event en java qui permettrai de savoir quand mon onglet est fermé, pour pouvoir afficher un alert(); quand la personne quitte mon site.
Merci.
Voila j'aimerais savoir si il y a moyen de récupérer un event en java qui permettrai de savoir quand mon onglet est fermé, pour pouvoir afficher un alert(); quand la personne quitte mon site.
Merci.
4 réponses
-
Utilise l'évènement onUnload. Par contre, je te conseille (et te supplie...) de l'utiliser avec modération, il n'y a rien de pire que les sites desquels tu ne peux pas partir comme tu le souhaites.
-
Non je ne veux pas avec onunload justement, je veux afficher si l'onglet ou la fenêtre de navigation est quittée est-ce possible?
-
Parce-que avec unload a chaque actualisation ou changement de page la fonction s'exécute moi je veux juste si l'onglet ou la fenêtre sont fermés... Est-ce possible?
-
Non, la portée du Javascript est limité au document, tu ne peux pas tester si la fenêtre ou l'onglet est fermé, seulement si le document est fermé.
Mais en réfléchissant un peu tu dois pouvoir contourner ça : du style un évènement onclick sur tous les liens de navigation interne (donc qui ne quitte pas le site), qui désactive le gestionnaire d'évènement onunload. Le visiteur reste sur ton site donc tu n'en as pas besoin. A priori ça devrait marcher, mais ça demande un traitement supplémentaire...
-
-
HA wai bonne idée si il click sur un lien ça désactive le onunload ok je vais y réfléchir merci encore :)
-
Pas de soucis ! Mais au risque de passer pour vieux radoteur, utilise ce mécanisme que si c'est indispensable, c'est vraiment ch*ant pour l'utilisateur !
Et quand tu auras la solution, si tu pouvais passer la poster par ici, pitet que ça pourra aider quelqu'un d'autre...- Ok donc j'ai testé plusieurs trucs et c'est celui-ci que j'ai réussi à faire fonctionner:
Java:var a = document.getElementsByTagName('A'); var x=1; for(i=0;i<a.length;i++) { a[i].onclick = function() {annul()}; } function annul() { x=0; } function bye() { if(x==1){ //fonction à faire pour la fermeture de la fenêtre } }
php/html:
<BODY onunload="bye();">
Il y a surement une méthode plus simple mais celle ci marche seul petit hick:
quand on actualise sa exécute aussi la fonction, donc ya pas moyen de faire un bind comme avec les autres langages du genre bind('F5') et la fonction annule?
-