Le code javascript de la mère
mercredi 26 novembre 2008
par olivier ramos

Les codes javascript liés aux fenêtres de la mère et de la fille, sont de bons exemples pour comprendre :
- l’utilisation des chemins hiérarchiques permettant d’accéder à un objet afin de modifier ses propriétés, 
- la programmation événementielle. Dans le cas considéré, un événement qui survient dans une fenêtre produit un changement immédiat d’un objet de l’autre fenêtre.

// Au chargement de la page.
window.onload=initialisation;

function initialisation() {
// Charge les options par défaut.
debut();
// Initialise les gestionnaires d'événements de tous les éléments du formulairewebdev.
document.getElementById("formulairewebdev").nom.onkeyup=function(){traiter_info1(this.value)};
document.getElementById("formulairewebdev").prenom.onkeyup=function(){traiter_info2(this.value)};
document.getElementById("formulairewebdev").secret.onkeyup=function(){traiter_info5(this.value)};
document.getElementById("homme").onclick=function(){traiter_info3(this.value)};
document.getElementById("femme").onclick=function(){traiter_info3(this.value)};
document.getElementById("loisir").onclick=function(){
// traiter_info6(this.value)}; est valable avec firefox, mais pas avec internet explorer.
traiter_info6(document.getElementById("loisir").options[document.getElementById("loisir").selectedIndex].text)
};
document.getElementById("formulairewebdev").francais.onclick=function(){traiter_info7(this.value)};
document.getElementById("formulairewebdev").anglais.onclick=function(){traiter_info7(this.value)};
document.getElementById("formulairewebdev").allemand.onclick=function(){traiter_info7(this.value)};
document.getElementById("formulairewebdev").espagnol.onclick=function(){traiter_info7(this.value)};
document.getElementById("formulairewebdev").projet.onkeyup=function(){traiter_info4(this.value)};
document.getElementById("enregistrer").onclick=function(){fille()};
document.getElementById("effacer").onmouseup=function(){effacerfille()};
}

// Efface les données de la fenêtre fille (un dixième après avoir effacé les données de la fenêtre mère).
function effacerfille() {
setTimeout("w.debutva()",100);
}

//Les fonctions traiter_info* permettent de transporter les données vers la fenêtre fille.
// *********************************************************************************

function traiter_info1(mot) {
w.document.getElementById("formulairewebdev").nomva.value=mot;
}
function traiter_info2(mot) {
w.document.getElementById("formulairewebdev").prenomva.value=mot;
}
function traiter_info3(mot) {
// w.document.getElementById("genre").value="Monsieur"; fonctionne avec firefox mais pas avec internet explorer.
if (mot=="un homme"){w.document.getElementById("genre").options[0].selected=true;}
if (mot=="une femme"){w.document.getElementById("genre").options[1].selected=true;}
}
function traiter_info4(texte) {
w.document.getElementById("formulairewebdev").projet.value=texte;
}
function traiter_info5(mot) {
w.document.getElementById("formulairewebdev").secretva.value=mot;
}
function traiter_info6(mot) {
if (mot=="informatique"){ w.document.getElementById("informatique").checked=true;}
if (mot=='sport'){ w.document.getElementById("sport").checked=true;}
if (mot=="cinéma"){ w.document.getElementById("cinéma").checked=true;}
if (mot=="musique"){ w.document.getElementById("musique").checked=true;}
}
function traiter_info61() {
alert('info61');
w.document.getElementById("sport").selected=true;
}
function traiter_info7(mot) {
if (mot=="francais"){ w.document.getElementById("formulairewebdev").francais.checked=document.getElementById("formulairewebdev").francais.checked;}
if (mot=="anglais"){ w.document.getElementById("formulairewebdev").anglais.checked=document.getElementById("formulairewebdev").anglais.checked;}
if (mot=="allemand"){ w.document.getElementById("formulairewebdev").allemand.checked=document.getElementById("formulairewebdev").allemand.checked;}
if (mot=="espagnol"){ w.document.getElementById("formulairewebdev").espagnol.checked=document.getElementById("formulairewebdev").espagnol.checked;}
}
// *********************************************************************************

// Ouvre la fenêtre fille.
function fille(){
w=self.window.open('fille.html',"Fiche_de_renseignements","menubar=no, status=no, scrollbars=no, menubar=no, width=450, height=300");
}

// Les options par défaut.
function debut(){
document.getElementById("formulairewebdev").nom.value="";
document.getElementById("formulairewebdev").prenom.value="";
document.getElementById("formulairewebdev").secret.value="";
document.getElementById("homme").checked=true;
// document.getElementById("formulaire").loisir.value="informatique"; fonctionne avec firefox mais pas avec internet explorer.
document.getElementById("informatique").selected=true;
document.getElementById("formulairewebdev").francais.checked=true;
document.getElementById("formulairewebdev").anglais.checked=false;
document.getElementById("formulairewebdev").allemand.checked=false;
document.getElementById("formulairewebdev").espagnol.checked=false;
document.getElementById("formulairewebdev").projet.value="";
}