Javascript savoir quand l'onglet est fermé

Fermé
nemolovich Messages postés 81 Date d'inscription samedi 3 janvier 2009 Statut Membre Dernière intervention 30 janvier 2013 - 29 avril 2009 à 22:52
nemolovich Messages postés 81 Date d'inscription samedi 3 janvier 2009 Statut Membre Dernière intervention 30 janvier 2013 - 2 mai 2009 à 21:00
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.
A voir également:

4 réponses

pyschopathe Messages postés 1963 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 137
29 avril 2009 à 23:00
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.
1
nemolovich Messages postés 81 Date d'inscription samedi 3 janvier 2009 Statut Membre Dernière intervention 30 janvier 2013 12
30 avril 2009 à 00:44
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?
0
pyschopathe Messages postés 1963 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 137
1 mai 2009 à 00:16
Ben c'est possible avec onunload... Pourquoi tu ne peux pas ?
0
nemolovich Messages postés 81 Date d'inscription samedi 3 janvier 2009 Statut Membre Dernière intervention 30 janvier 2013 12
1 mai 2009 à 20:57
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?
0
pyschopathe Messages postés 1963 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 137
2 mai 2009 à 00:43
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...
0
nemolovich Messages postés 81 Date d'inscription samedi 3 janvier 2009 Statut Membre Dernière intervention 30 janvier 2013 12
2 mai 2009 à 00:45
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 :)
0
pyschopathe Messages postés 1963 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 137
2 mai 2009 à 15:58
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...
0
nemolovich Messages postés 81 Date d'inscription samedi 3 janvier 2009 Statut Membre Dernière intervention 30 janvier 2013 12 > pyschopathe Messages postés 1963 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010
2 mai 2009 à 21:00
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?
0