Warning sur un popup

Eléphanteau du PHP | 24 Messages

18 juin 2006, 12:17

Salut a tous.

Je suis assez debutant en dev donc j'aurai beosin de votre aide.

Voila, je voudrai faire apparaitre une boite de dialogue si l'on tente de fermer un popup !
Genre on demande si on est sur avec un bouton Oui et un Non...

Si quelqu'un a une idee...

Merci bcp !
Gentoo PoWaaa

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

18 juin 2006, 13:05

Salut,

Il faut regarder du coté du javascript et de l'événement onunload() ou onbeforeunload() et un appel à une boite de dialogue confirm()

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

19 juin 2006, 10:30

modération : comme convenu, j'ai supprimé le message en trop et j'ai déplacé ce message dans le bon forum ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

19 juin 2006, 20:58

modération : comme convenu, j'ai supprimé le message en trop et j'ai déplacé ce message dans le bon forum ;)
On voit que les modos suivent tous les sujets :pouce:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

20 juin 2006, 09:50

On voit que les modos suivent tous les sujets :pouce:
eh, je suis payé pour :D

Merde, j'aurais pas du dire que j'était payé :langue
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 24 Messages

20 juin 2006, 09:53

Merci les gars... mais en fait j'aimerai bien de l'aide !!!
Gentoo PoWaaa

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

20 juin 2006, 10:00

Salut,

Il faut regarder du coté du javascript et de l'événement onunload() ou onbeforeunload() et un appel à une boite de dialogue confirm()
:!:
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 24 Messages

27 juin 2006, 08:53

Ok, bon j'ai reussi a faire a peu pres ce que je voulais, mais j'ai un probleme...
J'ai un meta refresh sur ce popup, affichant un controle du traffic (UP/Down).

il m'affiche donc toujours le message a chaque refresh...
et ca c'est pas bien ^^

Ce que j'ai fait :

Code : Tout sélectionner

<script language="javascript"> function close() { window.alert('You have been disconnected'); window.open('autodisconnect.php','deco','width=200,height=200'); } </script> <body onUnload="close()">
et un self.close sur autodisconnect.php, vu que ca execute un tout petit script !

J'ai essayé avec unBeforeUnload mais c'est pareil...

Si quelqu'un peut me dire comment je peu faire fonctionné ca seulement a la fermeture du popup et non a chaque refresh... ca serait trop bien !!!

Merci
Gentoo PoWaaa

Eléphant du PHP | 441 Messages

27 juin 2006, 08:59

Hélas la seule solution est la frame cachée pour ne déclencher l'évènement onBeforeUnload qu'à la fermeture de fenêtre.

En fait ta pop up est un frameset avec 2 frames. La première est la principale qui contiendra le meta refresh et le seconde est "cachée" c'est à dire avec une taille 0 et disposant de l'évènement onBeforeUnload sur la balise body.

A la fermeture de la fenêtre, l'évènement sera déclenché sur la frame cachée. Tandis que ton refresh ne concerne que le frame principal.
Futures Stars par ici >> www.apel-doorn.com
fan d'info et du ... PSG !! :D
Apprendre, comprendre et maîtriser telle est ma devise!
Fan inconditionnel de netvibes

Eléphanteau du PHP | 24 Messages

27 juin 2006, 11:52

Je pensai y etre arrivé ! mais non....
Je ne peux pas utiliser de <body> and les <frameset>...

Or il me faut absolument le body, il me permet de chargé la page par default du browser...

Y'a t'il un moyen de contourné ca ?

Merci
Gentoo PoWaaa

Eléphant du PHP | 441 Messages

27 juin 2006, 13:00

Je pensai y etre arrivé ! mais non....
Je ne peux pas utiliser de <body> and les <frameset>...
Comment ça tu ne peux pas? ça n'a rien de bien méchant :-k
Futures Stars par ici >> www.apel-doorn.com
fan d'info et du ... PSG !! :D
Apprendre, comprendre et maîtriser telle est ma devise!
Fan inconditionnel de netvibes

Eléphanteau du PHP | 24 Messages

27 juin 2006, 13:05

Ba...
SI je met un body (dt j'ai absolument besoin), les frameset ne s'affichent pas !...
j'ai testé et ceci me l'a démonter :
Important: You cannot use the <body></body> tags together with the <frameset></frameset> tags! However, if you add a <noframes> tag containing some text for browsers that do not support frames, you will have to enclose the text in <body></body> tags!
C'est la m***
Gentoo PoWaaa

Eléphant du PHP | 441 Messages

27 juin 2006, 13:19

Ah mais tu utilises mal les frameset,regardes un peu la doc pour voir comment ca fonctionne sans vouloir te vexer ;).

exemple:
Alors ton application va contenir 2 frames, exemple :
  <frameset rows="*,18">
  <frame name="main" frameborder="0" src="main.php" title="contenu"></frame>
  <frame name="footer" frameborder="0" noresize="noresize" scrolling="no" src="footer.php" title="bas de page"></frame>
</frameset>
Ma frame footer doit récupérer les 2 évènements onBeforeUnload et onUnload:
<body onBeforeUnload="return message();" onUnload="confirmLogOut();">
L'évènement onBeforeUnload aura lieu car l'utilisateur va fermer la fenêtre. Alors une pop up de confirmation générique lui posera la question s'il souhaite vraiment fermer la fenêtre. S'il dit non alors la fenêtre ne se ferme pas, s'il répond oui alors le navigateur va fermer la fenêtre et donc déclencher l'évènement onUnload.
Futures Stars par ici >> www.apel-doorn.com
fan d'info et du ... PSG !! :D
Apprendre, comprendre et maîtriser telle est ma devise!
Fan inconditionnel de netvibes

Eléphanteau du PHP | 24 Messages

28 juin 2006, 08:49

Alors en fait, je pense avoir compris le truc....
Le body dont je parle, doit etre avant les framset afin d'executer le onLoad.

Ensuite je veux afficher les framset... mais ca ne veut pas !

La en fait je parle de 3 body differents, 1 dans chacunes des 2 frameset et un avant les framset...
si je vire le 1er body, les frameset s'affichent, mais si je le met, elles ne s'affichent pas ...

Si tu regarde bien le lien que tu m'as donner (non chui pas vexe :wink: ), quand il y a des frameset, il n'y a pas de body... or moi j'ai besoin des 2 en meme temps...
Gentoo PoWaaa

Eléphanteau du PHP | 24 Messages

28 juin 2006, 10:44

Ca y est, j'ai trouver... c'etait un peu tout c** mais bon....
Au lieu de mettre un

Code : Tout sélectionner

<body onLoad=".....">
je l'ai mis directement dans

Code : Tout sélectionner

<SCRIPT> window.onLoad= ........... </SCRIPT>
Maintenant faut que je fasse les fonction en java... c'est pas gagne non plus... chui un gros n00b !
Gentoo PoWaaa