fractalis
Messages postés3Date d'inscriptionjeudi 15 avril 2004StatutMembreDernière intervention11 octobre 2006
-
9 oct. 2006 à 18:39
raks13
Messages postés2Date d'inscriptionmardi 30 janvier 2007StatutMembreDernière intervention 9 juin 2011
-
9 juin 2011 à 13:08
Bonjour,
Je voudrais savoir comment récupérer l'évènement après un onbeforeunload, et avant le onunload de la page.
Voici mon script :
<script language="JavaScript" event="onbeforeunload()" for="window">
event.returnValue = "Des données peuvent être en cours de saisie...";
</script>
Ce script permet donc d'afficher une boîte de dialogue lorsqu'on ferme le navigateur, celle-ci comprenant deux boutons : OK et Annuler. Un clic sur OK ferme le navigateur et un clic sur Annuler le laisse ouvert.
Le problème est que je voudrais effectuer des actions spécifiques lors du clic sur chacun de ces boutons, mais je ne trouve pas comment.
Quelqu'un aurait-il déjà rencontré ce problème et réussi à le résoudre ? Merci de votre réponse.
fractalis
Messages postés3Date d'inscriptionjeudi 15 avril 2004StatutMembreDernière intervention11 octobre 2006 11 oct. 2006 à 17:03
Merci pour la réponse.
Effectivement le message je l'ai en utilisant cette méthode.
Cependant, je ne peux toujours pas effectuer une action en cliquant sur OK que je ne veux pas faire en cliquant sur Annuler.
Je ne peux pas non plus effectuer cette modification sur l'évènement onunload car l'action que je désire effectuer s'effectue dans la fenêtre qui est fermée au moment du onunload.
Le but est en fait d'enregistrer la date et l'heure de déconnexion d'un internaute si ce dernier ferme l'explorer brutalement par Alt-F4 ou par la croix sans cliquer sur un quelconque bouton de déconnexion. Mon site est fait en ASP.
Je serais ravi si quelqu'un a une idée sur ce gros problème.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 11 oct. 2006 à 18:15
souvent on détermine qu'un visiteur est "parti",
quand il n'y a plus d'actions de sa part depuis un certain temps.
je ne pense pas qu'on puisse faire beaucoup d'autres choses.
peut-être me trompe-je : jamais vu d'autre solution,
en javascript "pur" ( hors ActiveX par exemple ) mais je
n'ai pas vu grand chose non plus.
<hr />
Cordialement Bul
fractalis
Messages postés3Date d'inscriptionjeudi 15 avril 2004StatutMembreDernière intervention11 octobre 2006 11 oct. 2006 à 19:59
Ok merci bien, mais je pense que faire tourner un batch pour déconnecter un user serait trop lourd en terme de ressources serveur.
Effectivement, je pense creuser du côté ActiveX.
Si quelqu'un a un truc pour me faire avancer, je suis preneur.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 11 oct. 2006 à 14:41
Bonjour,
je ne pense pas qu'on puisse gérer "cela comme ça"
tout ce que j'ai réussi à faire : onbeforeunload="fnct(); return false;"
qui affiche un message pour confirmer ou pas la fermeture de la page.
dans fnct, je ne pense pas qu'il soit possible de ne pas fermer.
on peut fermer "automatiquement" oui : sans mettre le return false;
peut-on faire plus/mieux ?
mais peut-être me trompe-je ?
<hr />
Cordialement Bul
Vous n’avez pas trouvé la réponse que vous recherchez ?
rubiks10
Messages postés224Date d'inscriptionlundi 19 décembre 2005StatutMembreDernière intervention 6 juin 20073 12 oct. 2006 à 00:57
Salut
Ben en fait je ne pense pas que tu puisses avoir une boite de dialogue lors d'une sortie brutale ( en tuant le processus par son pid ou par un clic sur la croix du navigateur ) mais par contre c'est faisable d'intercepter le ALT+F4 et donc d'effectuer une demande
Et aussi pour ton histoire d'ecriture d'heure de déconnexion si je comprend bien tu voudrais ecrire l'heure soit dans une base soit dans un fichier externe. Et si c'est ce que tu veux faire c'est largement faisable en lançant une requete AJAX lors de l'evenement onUnload qui ecrira soit dans ta base soit dans un fichier l'heure courante. Cependant le probleme de l'evenement onUnload c'est que meme si on se déconnecte pas mais que l'on fait un rafraichissement ( par exemple F5 ) cela lance l'evenement quand meme et c'est la meme chose si un lien te redirige vers une autre page de ton site....
Donc cet evenement ne s'avere pas t'être très utile ... mais bon tu peux très bien enregistrer a chaque fois l'heure et lorsque l'utilisateur se déconnectera vraiment ben l'heure sera quand meme la bonne.
je récupère le nom d'un courrier créer sur ma page et l'envoi sur une autre page pour le supprimer.
Par contre pas de validation demandée, sauf si vous les gérez sur la page appeller
<hr /><hr />
sur une autre page:
window.onbeforeunload = fermer;
function fermer(){
vformulaire = document.f_choix.f_form.value;
old_TR = document.f_choix.f_TR.value;
if (vformulaire != 0){
vNP = document.forms[vformulaire].NP.value;
vNV = document.forms[vformulaire].NV.value;
vCR = document.forms[vformulaire].CR.checked;
vNC = document.forms[vformulaire].NC.value;
if (vNP != "NP" | vNV != "NV" | vNC != "" | vCR == "true"){
SetColor(document.getElementById( old_TR ), "RED");
document.forms[old_form].NP.focus();
mess = "Vous n'avez pas enregistrer....\n Si vous fermez cette fenetre, \nvous perdrez les informations non sauvegarder..."
return mess;
}
}
}
<hr />
Lors de la saisie du formulaire je modifie des valeurs dans des input hidden
en validant le formulaire, je les rétablis, sinon lors de la sortie de la page, cela me met un message ...
Je ne sais pas si c'est ce que tu cherchais
mais cela peut peut etre te mettre sur la voie....
raks13
Messages postés2Date d'inscriptionmardi 30 janvier 2007StatutMembreDernière intervention 9 juin 2011 9 juin 2011 à 13:08
Bonjour,
Désolé de remonter un si vieux message mais je me retrouve dans la même situation que fractalis, j'ai donc le code suivant:
<script type="text/javascript">
function closeIt()
{
return " ";
}
window.onbeforeunload = closeIt;
</script>
Si l'utilisateur clique sur OK, j'aimerais exécuter une fonction supplémentaire. Le code aurait-il évolué depuis, quelqu'un connait-il une solution?