Fermer une popup depuis la fenêtre parente [Résolu]

Messages postés
1162
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
- - Dernière réponse : aouissaouinizar
Messages postés
1
Date d'inscription
mercredi 14 février 2007
Statut
Membre
Dernière intervention
10 décembre 2009
- 10 déc. 2009 à 10:34
Hello,



J'y connais pas grand chose en javascript et j'ai besoin d'aide!

J'ai pondu un code en PHP qui contient un formulaire. Lorsqu'on clique sur le bouton, une popup s'ouvre:



function processPop(){

wind2 =
window.open('','processing','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,'
+ 'width=100' + ',height=50');

wind2.document.write("<center>please, wait while loading
</center>");

wind2.document.close();

}

...






Après avoir cliqué sur le bouton, un script PHP assez long s'exécute
(ça peut prendre une minute). J'aimerais qu'à la fin de l'exécution, la
fenêtre popup se referme toute seule...

J'ai vaguement essayé de faire la chose suivante:



function closeProcess(){

wind2.close();

}

...

// exécution du script php

echo $results;

?>

closeProcess()



mais ça ne marche pas... quelqu'un pourrait m'aider?? (je résume: ouvrir une pop-up, puis la fermer automatiquement après l'exécution d'une fonction (un wait par exemple))




Thanx, Malik7934
Afficher la suite 

9 réponses

Meilleure réponse
Messages postés
1251
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
30 septembre 2007
1
3
Merci
lol

j'ai trouvé pourquoi ca ne marche pas

c'est parce que tu ne peut fermer une fenetre qui est deja fermer - c'est normal



conclusion, tu doit réouvrir le popup puis le refermer tout de suite

je ne sais pas si tu me suis, donc tu fais comme ca :

function processPop(){
wind2
=
window.open('','processing','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,'
+ 'width=300,height=200,left=200,top=100,screenX=200,screenY=100');

wind2.focus();

wind2.document.write("<center>please, wait while loading
</center>");

wind2.document.close();

}



function closeProcess(){

wind2 =
window.open('','processing','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,'
+ 'width=300,height=200,left=200,top=100,screenX=200,screenY=100');


wind2.close();

}

et la tu appel ta fonction pour le fermer et ca marche sans probleme

Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 197 internautes nous ont dit merci ce mois-ci

Commenter la réponse de tucsoufle
Messages postés
1251
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
30 septembre 2007
1
0
Merci
salut

je ne m'y connais pas non plus énormément en javascript

mais essaye plutot quelue chose du genre :



function closeProcess(){

wind2.close();

}

...

// exécution du script php

echo $results;

?>

<script>

closeProcess();

</script>


Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
Commenter la réponse de tucsoufle
Messages postés
1162
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
1
0
Merci
Merci mais j'ai déjà essayé!



En fait, j'arrive même pas à fermer ce popup même avec un bouton
close... il doit y avoir une affaire de portabilité des variables...
mais j'y connais rien en javascript.

Voici pourquoi je parle de portabilité:





function processPop(){
wind2 =
window.open('','processing','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,'
+ 'width=300,height=200,left=200,top=100,screenX=200,screenY=100');

wind2.focus();

wind2.document.write("<center>please, wait while loading
</center>");

wind2.document.close();

}



function closeProcess(){

wind2.close();

}



...

echo '</form>';

upld($arg);





et c'est dans la fonction upld que je fais





echo '';





Mais bien sûr, ça marche pô . Le bouton "Refermer la Fenêtre" n'a aucun effet...
Commenter la réponse de malik7934
Messages postés
1162
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
1
0
Merci
un petit complément qui a son importance je crois... Mon code a cette forme:



function processPop(){

wind2 =
window.open('','processing','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,'
+ 'width=300,height=200,left=200,top=100,screenX=200,screenY=100');

wind2.focus();

wind2.document.write("<center>please, wait while loading
</center>");

wind2.document.close();

}



function closeProcess(){

wind2.close();

}



...

echo '</form>';

upld($arg);



et c'est dans la fonction upld que je fais



echo '';



Mais bien sûr, ça marche pô
Commenter la réponse de malik7934
Messages postés
1251
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
30 septembre 2007
1
0
Merci
tiens

j'arrive a fermer le popup depuis la premiere fenetre avec un lien

......mais autrement je ne comprend pas

le lien qui marche

[# fermer]

Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
Commenter la réponse de tucsoufle
Messages postés
1162
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
1
0
Merci
Je viens de faire un bout de code totalement inutile, mais représentatif de la structure de ma source:



<HTML>



<head>

<title>popup</title>





<script LANGUAGE="JavaScript">

<!--



function processPop(){

var wind2 =
window.open('','processing','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,'
+ 'width=300,height=200,left=200,top=100,screenX=200,screenY=100');

wind2.focus();

wind2.document.write("<center>please, wait while loading
</center>");

wind2.document.close();

}



function closeProcess(){

wind2.close();

}



//-->

</script>

</HEAD>



<?php

function formulaire($sel){



echo '<form name ="multi_up" action="'.$_SERVER['SCRIPT_NAME'].'" method="post">';

echo '<select name="ligne" size="1">';



for ($i=0;$i<10;$i++)

if ($i == $sel)

echo '<option name="'.$i.'" selected>'.($i+1).'</option>';

else

echo '<option name="'.$i.'">'.($i+1).'</option>';

echo '</select>';

echo '

</form>';



}



function upld($i){

if ($i == 9) echo '';

}



$submit1 = $_POST['submit1'];

$submit2 = $_POST['submit2'];



if (!(($submit1) || ($submit2))){



formulaire(0);

}



else{



if (!($submit2)){



$submit1 = 0;

$j = $_POST['ligne'];

formulaire(($j-1));



for ($i=0;$i<$j;$i++){

echo $i.'
';

}

echo '</form>';

}



$j = $_GET['size'];



for($i=0;$i<10;$i++){

upld($i);

}



}

?>

</HTML>



Voilà. Peut-être qu'avec ça, mon erreur est plus détectable...
je veux juste que le popup qui s'ouvre avec open se referme avec close!
Commenter la réponse de malik7934
Messages postés
1162
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
1
0
Merci
CA MARCHE!!!



Par contre j'ai pô compris...

"

c'est parce que tu ne peut fermer une fenetre qui est deja fermer - c'est normal" ... je la ferme quand la fenêtre?
Commenter la réponse de malik7934
Messages postés
1251
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
30 septembre 2007
1
0
Merci
en faites tu ne la ferme pas vraiment mais tu en empeche l'accès, dans la fonction ou tu la crée

je te met la ligne en rouge

function processPop(){
var
wind2 =
window.open('','processing','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,'
+ 'width=300,height=200,left=200,top=100,screenX=200,screenY=100');

wind2.focus();

wind2.document.write("<center>please, wait while loading
</center>");

wind2.document.close();

}


@+

Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
Commenter la réponse de tucsoufle
Messages postés
1
Date d'inscription
mercredi 14 février 2007
Statut
Membre
Dernière intervention
10 décembre 2009
0
Merci
Commenter la réponse de aouissaouinizar