Gestion des cadres « frameset » en Javascript Et ouvrir des documents dans plusieurs cadres par Django (Oznog) Blais, 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>
|