Gestion des cadres « frameset » en Javascript
Et ouvrir des documents dans plusieurs cadres
par Oznog, Trucsweb
- 30 Octobre 2000
Le HTML ne permet pas d’ouvrir plusieurs liens en même temps. Pour ce faire vous pouvez utiliser le Javascript pour ouvrir les documents dans les cadres désirés.
Pour bien comprendre les cadres ou les " frames ", lire le tutoriel "Frame et Frameset" dans la section HTML. Un cadre est un objet, vous pouvez donc modifier les propriétés de l'objet à l'aide du Javascript. Basé encore une fois sur la relation "parent/enfants", vous pouvez modifier les propriétés d'un cadre ou du document affiché dans le cadre. Plus d'information sur la gestion du document, voir "Les fenêtres ou l'objet WINDOW".Il est donc très façile de modifier les propriétés d'un document contenu dans un cadre.
Exemple
Parent.NomDuCadre.document
Permet de modifier ou d'obtenir les propriétés du cadre "NomDuCadre". Donc :
Parent.NomDuCadre.document.bgcolor
Permet de modifier ou d'obtenir la couleur de fond du document du cadre "NomDuCadre". Vous avez tout compris, il est donc possible de modifier à la volée les propriétés d'un document. Voici comment modifier la propriété "location" d'un document qui permet de changer la page affichée dans un cadre. Noter que le nom du cadre "NomDuCadre" est la valeur donner à l'attribut "SRC" dans la déclaration d'un "FRAMESET".
Parent.NomDuCadre.document.location = "http://url.com";
ou
Parent.NomDuCadre.location = "http://url.com";
- Plusieurs cadre à la fois
Parent.NomDuCadre1.location = "http://url1.com";
Parent.NomDuCadre2.location = "http://url2.com";Exemple avec ce "frameset"
<frameset cols="200,*">
<frame SRC="menu1.htm" NAME="menu">
<frame SRC="text1.htm" NAME="text">
</frameset>Avec un formulaire
<INPUT TYPE="button" VALUE="Voir le Texte #2"
onClick="parent.text.location='text2.htm'">Exemple complet
Personnellement je me fais une fonction que j'appelle par la suite avec les liens hypertexte.<HEAD>
<script language="Javascript">
<!--
function go(nURL) {
if (nURL==1) {
parent.menu.location="menu1.htm";
parent.text.location="text1.htm"
}
if (nURL==2) {
parent.menu.location="menu2.htm";
parent.text.location="text2.htm"
}
}
// -->
</script>
</HEAD>
<BODY>
<a HREF="javascript:go(1)">Lien 1</A><BR>
<a HREF="javascript:go(2)">Lien 2</A>
</BODY>
Syntaxe et propriétés d'un cadre
- [RéférenceFenêtre.]NomCadre.NomPropriété
- [RéférenceFenêtre.]frame[index].NomPropriété
- Window.NomPropriété
- self.NomPropriété
- parent.NomPropriété
- RéférenceFenêtre = Variable "WindowVar" de la définition de la fenêtre ou " window " en d'autres mots le nom de la fenêtre principale. Parent et self sont synonymes.
- NomCadre = valeur de l'attribut " NAME " de la balise " FRAME " en d'autres mots le nom du cadre.
- Index = un " interger " représentant un objet cadre. Car les cadres d'un document sont stockés dans un tableau. (frame[0], frame[1], frame[2]…)
- NomPropriété = une des propriétés du cadre ou du document.
Propriété d'un cadre
- Frames = tableau contenant chaque cadre d'une fenêtre (commence à 0)
- Name = l'attribut NAME de la balise " frame "
- Length = le nombre d'enfants de l'objet cadre. Si le cadre contient lui-même un " frameset "
- Parent = synonyme de la fenêtre ou du " frameset " qui contient le cadre.
- Self = synonyme du cadre courant.
- Window = synonyme du cadre courant.
Le tableau des cadres a aussi une propriété " length " pour savoir le nombre de cadres dans le tableau.
NOTE : L'attribut " NAME " d'un cadre donner dans la déclaration d'un " frameset " peut aussi être donnée directement en utilisant " OPEN " qui permet d'ouvrir une nouvelle fenêtre, voir le tutoriel à ce sujet. Cadre2 est le nom du cadre parent ou de la fenêtre.
<script>
Mafenetre2=open("cadre2.htm", "cadre2")
</script>
Les Trucsweb
© 1997-2000 Conception Oznog co. Multimédia
www.trucsweb.com