Page 1 sur 2
Warning sur un popup
Posté : 18 juin 2006, 12:17
par MaKKrO
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 !
Posté : 18 juin 2006, 13:05
par Truc
Salut,
Il faut regarder du coté du javascript et de l'événement onunload() ou onbeforeunload() et un appel à une boite de dialogue confirm()
Posté : 19 juin 2006, 10:30
par zeus
modération : comme convenu, j'ai supprimé le message en trop et j'ai déplacé ce message dans le bon forum 
Posté : 19 juin 2006, 20:58
par Truc
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

Posté : 20 juin 2006, 09:50
par zeus
On voit que les modos suivent tous les sujets

eh, je suis payé pour
Merde, j'aurais pas du dire que j'était payé :langue
Posté : 20 juin 2006, 09:53
par MaKKrO
Merci les gars... mais en fait j'aimerai bien de l'aide !!!
Posté : 20 juin 2006, 10:00
par zeus
Salut,
Il faut regarder du coté du javascript et de l'événement onunload() ou onbeforeunload() et un appel à une boite de dialogue confirm()

Posté : 27 juin 2006, 08:53
par MaKKrO
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
Posté : 27 juin 2006, 08:59
par starkeus
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.
Posté : 27 juin 2006, 11:52
par MaKKrO
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
Posté : 27 juin 2006, 13:00
par starkeus
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

Posté : 27 juin 2006, 13:05
par MaKKrO
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***
Posté : 27 juin 2006, 13:19
par starkeus
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.
Posté : 28 juin 2006, 08:49
par MaKKrO
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

), quand il y a des frameset, il n'y a pas de body... or moi j'ai besoin des 2 en meme temps...
Posté : 28 juin 2006, 10:44
par MaKKrO
Ca y est, j'ai trouver... c'etait un peu tout c** mais bon....
Au lieu de mettre un
je l'ai mis directement dans
Maintenant faut que je fasse les fonction en java... c'est pas gagne non plus... chui un gros n00b !