Popup, frame et form mal adressé
Hello,
A partir d'un bouton image (au sein d'une page 1), je souhaite ouvrir une page 2, déclencher un fichier script et lui envoyer les données formulaires de la page 1 (ces déclenchements doivent pouvoir être effectués avec ou sans iFrame).
Je réussit ceci avec sur la page 1
* un formulaire avec une action=fichier script
* un target=name de frame (ou iframe) de la page 2
* sur l'image un onlick associé à un window.open(page2, nompage2, paramètresfenetre), un submit du formulaire
Ceci fonctionne correctement sous IE11 mais pas sous FF39.0 ni Chrome 43.0.2357.134 m
Sous FF et Chrome les résultats sont identiques : ouverture de la page 2 mais exécution du script dans un nouvel onglet de la page 1 (et malheureusement pas dans le frame de la page 2) ...
Page1
Code:
1 2 3 4
| <FORM NAME='CAILLET_cmde#fiche' TARGET='_SELF' METHOD='post' ...>
<INPUT TYPE='image' SRC='http://127.0.0.1:8888/Tableau/Script34/script34_j15_63/include/image/activer.gif' TITLE='TVA' ALT='' onClick='JavaScript: window.P_open["tva_f"]=window.open("http://127.0.0.1:8888/Tableau/Script34/script34_j15_63/Exemple/T1/tva_f.php","tva_f","width=500,height=400,modal=yes,toolbar=yes,location=yes,directories=yes,status=no,menubar=yes,scrollbars=no,copyhistory=yes,resizable=yes,dependent=yes");
window.P_open["tva_f"].focus(); this.form.target="hauttva";'> |
* "tva_f" est mon nom de page 2
* "hauttva" est le nom du iFRAME de la page 2
Page2
Code:
1 2 3 4 5 6 7 8
| <DIV class='2' style='display:inline'>
<DIV class='21' style='display:inline'>
<iFRAME NAME="hauttva" rows="200"></iFRAME>
</DIV>
<DIV class='22' style='display:inline'>
<iFRAME NAME="bastva" ></iFRAME>
</DIV>
</DIV> |
Sauriez-vous pourquoi une telle différence de comportement entre ces navigateurs ?
* Est-ce un pb de synchronisation ou plutôt d'asynchronisation ?
* Est-ce le name de la page 2 qui est mal identifié ?
* ?
Synchroniser le chargement de la fenetre fille et la suite de l'execution de la fenetre mere
J'ai supposé que le soucis provenait de la désynchronisation du chargement de la fenêtre fille et de la suite de l’exécution ...
Je n'ai pas réussit à utiliser un onload sur la fenêtre fille mais en testant sa variable de chargement je résous le problème sous FF. Toutefois Chrome ne fonctionne toujours pas de façon adéquate.
Code:
1 2 3
|
P_open[\"$nom_page\"]=window.open(\"$adrs1\",\"$nom_page\",\"$option\");
while(! P_open[\"$nom_page\"]) |
Peut être faut il faire patienter au delà de ce test ?
J'ai aussi tenté de déclarer une variable sur la fenêtre fille et d'en attendre la bonne exécution mais je suppose avec un code erroné :
Code:
1 2
|
while (typeof P_open[\"$nom_page\"].flagOpen === \"undefined\") {var P_open[\"$nom_page\"].flagOpen=new Boolean(true);} |
Auriez vous un suggestion ?