[Javascript & HTML] OnUnload et Mozilla

OnUnload et Mozilla [Javascript & HTML] - Programmation

Marsh Posté le 18-06-2002 à 12:14:09    

Bonjour,
 
Mon OnUnload ne fonctionne pas sous mozilla ... il marche tres bien sous IE. JE l'ai mit dans la balise body
<BODY OnUnload="Exit();">
Y'a t'il une solution alternative pour réaliser une action qd l'utilisateur ferme la page principale d'un site. En l'occurence je voudrai virer la session qu'il a creer (que je met dans une BDD).
Merci

Reply

Marsh Posté le 18-06-2002 à 12:14:09   

Reply

Marsh Posté le 18-06-2002 à 13:58:18    

[:gotcha]

Reply

Marsh Posté le 18-06-2002 à 14:09:42    

Heu onunload ça marche avec Mozilla. Le problème ne viendrait pas de ta fonction exit() ?
 
Cela dit attention à plusieurs points :
 - onunload doit être normalement être appelé quand on quitte la page, pas quand on quitte le navigateur.
 - penser à bien écrire onunload en miniscules si tu es en HTML strict ou en XHTML.

Reply

Marsh Posté le 18-06-2002 à 14:30:08    

Slt,
 
En fait je load deux frame a partir de ma page principale index.php (left.php et right.php) des le debut.
G mit le code du dessus dans left.php.
G essayé en minuscule mais ca marche pas non plus. G essayé de deplacer le onunload="Exit();" dans index.php mais la plus rien ne marche lol
Ma fonction exit appelle une fonction Javascript que g faire qui m'ouvre une fenetre popup. rien de bien spécial koi ...
Merci
 
Derniere petite note ... moi je veux que ca soit qd il ferme le navigateur ... mais je sais pas si c possible avec mozilla ... effectivement qd je quitte la page pour une autre page web ca marche ;)


Message édité par SCREAM78 le 18-06-2002 à 14:32:09
Reply

Marsh Posté le 18-06-2002 à 15:15:00    

SCREAM78 a écrit a écrit :

Slt,
 
En fait je load deux frame a partir de ma page principale index.php (left.php et right.php) des le debut.
G mit le code du dessus dans left.php.
G essayé en minuscule mais ca marche pas non plus. G essayé de deplacer le onunload="Exit();" dans index.php mais la plus rien ne marche lol
Ma fonction exit appelle une fonction Javascript que g faire qui m'ouvre une fenetre popup. rien de bien spécial koi ...
Merci



Tu l'as bien mis dans l'élément <frameset> ?

Citation :

Derniere petite note ... moi je veux que ca soit qd il ferme le navigateur ... mais je sais pas si c possible avec mozilla ... effectivement qd je quitte la page pour une autre page web ca marche ;)


Non ce n'est pas possible avec Mozilla qui suit à lettre ce qui est écrit dans la spec : http://www.w3.org/TR/html4/interac [...] f-onunload Onunload doit être appelé lorsqu'on décharge une page (quand on passe à une autre) pas quand on ferme le navigateur. Cela dit, IE lui le fait. Pour Mozilla tu peux passer par Javascript et utiliser window.onclose ( http://www.mozilla.org/docs/dom/do [...] ml#1000143 ) Mais je ne suis pas arrivé à le faire marcher :/
 
Cela pourquoi tiens-tu absolument à virer tes sessions ? Tu n'as pas un mécanisme de garbage-collector qui vire les sessions périmées ?


Message édité par gm_superstar le 18-06-2002 à 15:15:16
Reply

Marsh Posté le 18-06-2002 à 16:13:53    

Je veux virer mes sessions car qd l'utilisateur ferme la fenetre dans laquelle g creer une session et ouvre un nouveau navigator il ne reconnait pas la session qui a ete ouverte.
En fait tant que l'utilisateur ne ferme pas la fenetre ca va ... il peut aller surfer n'importe ou et revenir sur ma page ... mais si il ferme la fenetre et lance un nouveau navigateur c foutu.
Je c pas si c normal ... c la 1ere fois que j'utilise les sessions.

Reply

Marsh Posté le 18-06-2002 à 17:36:45    

Je ne sais pas trop quel mécanisme tu utilises pour gérer les sessions (tu parlais d'une BDD, donc tu ne dois pas utiliser les sessions PHP4), mais qu'une session expire quand on ferme le navigateur c'est normal car par défaut le cookie qui enregistre l'ID de la session expire dès qu'on ferme le navigateur.
 
Il faut donc que ta gestion de sessions dispose d'un mécanisme qui efface régulièrement les sessions qui ne sont plus utilisées.

Reply

Marsh Posté le 18-06-2002 à 17:46:19    

En fait j'utilise la bdd pour enregistrer le numéro de session que je cre et le login du mec connecté ... pour éviter que deux gugus se connectent depuis deux machine avec le meme login.
Donc ce que je voulais faire ... c qd l'utilisateur ferme son navigateur, je vire cette session de ma bdd ... comme ca si au bout de 2 min il veut se relogguer il peut ... (j'utilise cette bdd pour savoir qui est loggué, si apres le login je trouve une entree dans la bdd => je dis que qcn est deja loggué avec cet account).

Reply

Marsh Posté le 18-06-2002 à 18:32:04    

Ce que tu peux faire, c'est stocker l'ID de la session dans un cookie qui n'expire pas lors de la fermeture du navigateur, mais, par exemple, 1 heure après la dernière consultation d'une page de ton site.
 
Si un client se reconnecte avec un cookie non expiré, il sera dans ce cas reconnu et pourra réutiliser sa session. Si, au contraire, il se présente sans cookie il devra recréer une session.
 
Mais ceci ne te dispense pas d'imaginer un mécanisme pour effacer les sessions périmées de ta BDD (celles qui n'ont pas été mises à jour depuis 1 heure).
 
Voilà l'idée, après à toi d'adapter.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed