OVH Cloud OVH Cloud

[Mettre en pause un script le temps de remplir un pop up]

1 réponse
Avatar
Joe le Bonka
Bonsoir,

j'ai des soucis à faire cela :
J'ai un script "maître" qui doit rassembler des données.
Il ouvre l'un après l'autre des popup qui contiennent des formulaires. Le
job de ces popups est de controler les données.

Là j'essaie de mettre en pause le script "maître" le temps que le popup soit
vérifié et rempli.


Dans mon script 'maitre' j'ai fait cela :

popup=open("popup.htm",...) // ca ouvre mon popup
popup.focus(); // pour donner le focus à mon popup

while (!popup.closed) // Tant que mon popup n'a pas été fermé
{
donnee1=popup.window.formulaire.donnee1.value; // il lit le champ de
formulaire du popup.
}

// et donc du coté du popup, la fermeture ne sera autorisée que si et
seulement si
// les variables saisies sont ok.

alert(donnee1); // et on affiche pour vérifier que la variable récupérée est
bonne.


Ben ca marche pas terrible :
- c'est assez aléatoire. Parfois cela fonctionne, parfois pas.
- alors que je donne le focus à mon popup, parfois la fenêtre 'maître'
arrive en premier plan et devient toute blanche, l'affichage n'est pas
rafraichi. Alors je suis obligé de 'réactiver' le popup, et quoi qu'il
arrive, le programme ne fonctionne plus correctement après.

Logiquement, cela doit marcher. Mais apparemment le navigateur aime pas trop
faire des boucles pour rien.

N'y a t-il pas un moyen plus 'propre' de conditionner la suite du script
dans le maître ?

1 réponse

Avatar
ASM
Joe le Bonka wrote:
Bonsoir,

j'ai des soucis à faire cela :
J'ai un script "maître" qui doit rassembler des données.
Il ouvre l'un après l'autre des popup qui contiennent des formulaires. Le
job de ces popups est de controler les données.


Quelles *données* le pop-up contrôle t-il ?
et comment ?

Là j'essaie de mettre en pause le script "maître" le temps que le popup soit
vérifié et rempli.


vouloir mettre en *pause* du javascript n'existe pas !
c'est que c'est un bosseur ce javascript !
pas de repos pour les braves !

Dans mon script 'maitre' j'ai fait cela :

popup=open("popup.htm",...) // ca ouvre mon popup
popup.focus(); // pour donner le focus à mon popup

while (!popup.closed) // Tant que mon popup n'a pas été fermé
{
donnee1=popup.window.formulaire.donnee1.value; // il lit le champ de
formulaire du popup.
}


Sans savoir ce que fabrique ton pop-up,
perso, je ne ferais pas comme çà.

La fonction maître se termine à l'ouverture du pop-up puis
à la fermeture du pop-up celui-ci envoie ses données
à une fonction maître-bis de la fenêtre mère ouvrante

onunload="opener.maitre_bis('truc1','truc2, ... ,'trucn');"

// et donc du coté du popup, la fermeture ne sera autorisée que si et
seulement si
// les variables saisies sont ok.


popup :
<body onunload="if(opener.verif()) opener.maitre_bis();">

alert(donnee1); // et on affiche pour vérifier que la variable récupérée est
bonne.


Ben ca marche pas terrible :
- c'est assez aléatoire. Parfois cela fonctionne, parfois pas.
- alors que je donne le focus à mon popup, parfois la fenêtre 'maître'
arrive en premier plan et devient toute blanche, l'affichage n'est pas
rafraichi. Alors je suis obligé de 'réactiver' le popup, et quoi qu'il
arrive, le programme ne fonctionne plus correctement après.

Logiquement, cela doit marcher. Mais apparemment le navigateur aime pas trop
faire des boucles pour rien.


Doit trouver le temps long (en millisecondes!) à remplr le popup



--
Stephane Moriaux et son [moins] vieux Mac