Modifier une variable (javascript)

Fermé
KeyBoss - 20 févr. 2001 à 17:39
KeyBoss
Messages postés
24
Date d'inscription
samedi 3 février 2001
Statut
Membre
Dernière intervention
4 mars 2001
- 21 févr. 2001 à 16:06
Si une variable est declaré dans la frame du haut par ex, est-il possible de la modifier avec un evenement dans la frame du bas ?

2 réponses

PhP
Messages postés
1767
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
607
21 févr. 2001 à 14:31
Hi,

La réponse est oui (en doutais-tu ?)


A ce propos tu peux également aller voir la réponse que j'ai faite à
GoldJoker il y a qlques temps.

Voici un exemple concret :

J'ai une page de jeu de cadres appelée cadre.htm avec à l'intérieur
2 cadres : haut.htm et bas.htm


Page cadre.htm :
______________


<html>

<head>
<title>cadre</title>
</head>

<frameset rows="50%,50%">
<frame name="haut" target="bas" src="haut.htm" >
<frame name="bas" src="bas.htm">

<noframes>
<body>
<p>Cette page utilise des cadres, mais votre navigateur ne les prend pas en charge. </p>
</body>
</noframes>
</frameset>
</html>


Page haut.htm :
_____________

<html>
<head>
<title>Page haut.htm</title>
<script language="JavaScript">
<!--
var titre="PAS ENCORE MODIFIE PAR BAS.HTM"
// -->
</script>
</head>
<body>
Page haut.htm
<br><br>
Au départ la variable [titre] est initialisée avec la chaîne "PAS ENCORE MODIFIE PAR BAS.HTM"
<form>
<input type="button" value="Voir le contenu de la variable globale [titre]" onclick="alert('Titre = '+titre)">
</form>
</body>
</html>


Page bas.htm :
____________

<html>
<head>
<title>Page bas.htm</title>
<script language="JavaScript">
<!--

// Modifie la variable globale titre définie dans la page haut.htm
function changeTitre(txt)
{
window.parent.haut.titre=txt;
}

// -->
</script>
</head>
<body>
Page bas.htm

<form id="formulaire">
Entrer le nouveau contenu pour la variable [titre] déclarée dans haut.htm
<input type="text" size=20 name="texte">
<input type="button" value="Ok" onclick="changeTitre(document.forms['formulaire'].texte.value)">
<br><br>
Cliquer sur le bouton de la page haut.htm pour voir le résultat après avoir valider avec Ok.
</form>

</body>
</html>


Explication :

tout réside dans window.parent.haut.titre= ...

Ici on utilise la propriété .parent de la fenêtre en cours qui renvoie d'habitude la fenêtre elle-même. Mais avec les cadres c'est la fenêtre qui contient la description du jeu de cadres qui est retournée.
Donc une fois qu'on est dans la fenêtre des cadres on a accès au nom des cadres, ici "haut".

window.parent : pointe vers la fenêtre contenant le jeu de cadres

window.parent.haut : pointe vers le cadre "haut"

On peut ensuite accèder tout naturellement à ttes les varaibles globales, ttes les propriétés et ts les objets de la fenêtre située dans le cadre "haut".

window.parent.haut.titre : référence la variable dans la page haut.htm

Simple non ? {:)

@+

philippe
0
KeyBoss
Messages postés
24
Date d'inscription
samedi 3 février 2001
Statut
Membre
Dernière intervention
4 mars 2001
2
21 févr. 2001 à 16:06
j'ai tout compris :)
En fait mon probleme, c'est tout ces chemin, ces adresses ou chepakoi, faudrait faire une mega reference ou y'a tout les elements, paske je sais jamais comment acceder a un element, dans le cours javascript (ki je rapelle, n'est pas complet) y'a juste un petit tableau...
0