cs_Tupac59
Messages postés48Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention24 avril 2008
-
9 févr. 2007 à 16:50
cs_Tupac59
Messages postés48Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention24 avril 2008
-
12 févr. 2007 à 15:31
Voila mon probleme qui m'a pris la tête toute la journée!
J'ai une fenetre (f1) ouvrant une popup (f2), elle même ouvrant une popup (f3)
Quand f3 a fini son traitement, elle ferme f2, il me reste donc f1 et f3.
Avant de fermer f3, je veux rafraichir f1 qui est sa fenetre "grand mère".
Comme cela n'est pas possible nativement, j'ai fait ceci:
<code>
//dans f2
var popup_bdc=window.open('validation2_adsl.php?num_command=".$num_command."&parent=window.opener.parent','print_command','width=255,height=150,titlebar=no,resizable=yes,scrollbars=no,left=300, top=300, status=no,toolbar=no');
popup_bdc.mere=window.opener.parent;
//dans f3
var mere;
Je devrais donc avoir mon objet correspondant à f1 dans 'mere', ce qui me permettrait de faire mere.close()
mais dans mere j'ai un magnifique 'Undefined'
D'avance merci!
A voir également:
Atteindre une variable d'une fenetre fille à partir de la mere
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201137 9 févr. 2007 à 22:58
Salut,
Une autre solution est de faire faire des faux fenêtre popup et la plus de problème car c'est des div, elles sont dragabble et peuvent communiquer entre elles.
Pour des exemples, recherche sur internet popup
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 10 févr. 2007 à 09:32
Bonjour,
nhervagault a parfaitement raison, surtout que de plus en plus de personnes refusent les pop-up
même si j'eusse préféré qu'il cite JavsScriptFR.com comme source de recherche
( de mémoire, peut-être me trompe-je ? PetOleTeam a du faire quelque chose là-dessus,
sinon, une petite recherche ? )
pour répondre quand même ( je pense qu'on en avait déjà causé sur ce forum ) :
==========================================================
<HTML><HEAD><TITLE>f1 : la grand mère</TITLE></HEAD>
<script type="text/javascript">
function cre()
{
window.open("f2.htm","","");
}
</script>
</HTML>
==========================================================
<HTML><HEAD><TITLE>f2 : la fille</TITLE></HEAD>
<script type="text/javascript">
var pop;
function mem()
{
pop.mere=window.opener;
}
function cre()
{
pop=window.open("f3.htm","","");
setTimeout("mem();",1000);
}
</script>
</HTML>
==========================================================
<HTML><HEAD><TITLE>f3 : la petite fille</TITLE></HEAD>
<script type="text/javascript">
var mere;
function mem()
{
eval(mere.txt.value="'exemple'");
}
</script>
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 10 févr. 2007 à 09:35
bon... là c'est la petite fille qui cause à sa grand'mère...
"à adapter" pour que la mémé sache où est sa petite fille.
ça se joue chez la fille, qui connait sa mère (window.opener) et la petite-fille (pop)
<hr /> Cordialement Bul
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 11 févr. 2007 à 17:02
précisons simplement que le window.opener c'est celui de la page f2, c'est à
dire f1, par celui de f3 qui serait f2. ( j'espère avoir bien embrouillé là ).
<hr />
cs_Tupac59
Messages postés48Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention24 avril 2008 12 févr. 2007 à 10:40
Encore merci bultez. J'ai réussi à bidouiller un peu.
Un problème subsiste :
//dans f2
var pop_bdc;
function memoriserMere()
{
popup_bdc.mere=window.opener;
}
function valider_cmde()
{
popup_bdc=window.open('validation2_adsl.php?num_command=<? echo $num_command ?>','print_command','width=255,height=150,titlebar=no,resizable=yes,scrollbars=no,left=300, top=300, status=no,toolbar=no');
setTimeout('memoriserMere();',1000);
//window.close() <----------- problème
}
//dans f3
var mere;
setTimeout('this.opener=mere;',1000);
puis après traitement:
window.opener.location.reload();self.close()
C'est bien f1 qui est rafraichit et mon popup se ferme bien. Le problème est que je ne peut plus fermer f2 une fois arrivé sur f3 car
son opener est devenu f1. Il faudrait que je ferme f2 une fois le traitement de f3 terminé.
J'ai pensé à : ne pas faire this.opener=mere;
et faire à la place mere.location.reload(); window.opener.close(); self.close();
Mais dans f3 il y a un formulaire à valider, du coup lorsqu'on valide je perd ma variable 'mere' définie au load
Comment faire ???? Je continue à chercher mais si quelqu'un a une idée, je suis preneur!
J'espère que tu m'a compris
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 12 févr. 2007 à 11:06
>>Il faudrait que je ferme f2 une fois le traitement de f3 terminé.
pas de souci particulier...
>>son opener est devenu f1
ben non ???
======================================
<HTML><HEAD><TITLE>f1 : la grand mère</TITLE></HEAD>
<script type="text/javascript">
var d=new Date();
document.write(d); // pour contrôler que le rafraîchissement est bien fait
function cre()
{
window.open("f2.htm","","");
}
</script>
</HTML>
======================================
<HTML><HEAD><TITLE>f2 : la fille</TITLE></HEAD>
<script type="text/javascript">
var pop;
function mem()
{
pop.mere=window.opener;
}
function cre()
{
pop=window.open("f3.htm","","");
setTimeout("mem();",1000);
}
</script>
</HTML>
======================================
<HTML><HEAD><TITLE>f3 : la petite fille</TITLE></HEAD>
<script type="text/javascript">
var mere;
function mem()
{
eval(mere.location.reload()); // pour l'exemple j'ai mis le rafaîchissement (f1)
window.opener.close(); // et la fermeture (f2) dans le même traitement
}
</script>
cs_Tupac59
Messages postés48Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention24 avril 2008 12 févr. 2007 à 11:27
oui mais le problème comme ca est que : lorsque sur la petite fille (f3) on valide le formulaire, on perd la variable mère.
Je ne peux donc plus l'utiliser.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 12 févr. 2007 à 12:05
>>lorsque sur la petite fille (f3) on valide le formulaire...
parce que le formulaire redirige ailleurs ou recharge la page ou ... je ne sais quoi
donc, return false, ou méméoriser dans un cookies ou ... je ne sais quoi