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

  1. [RéférenceFenêtre.]NomCadre.NomPropriété
  2. [RéférenceFenêtre.]frame[index].NomPropriété
  3. Window.NomPropriété
  4. self.NomPropriété
  5. parent.NomPropriété

Propriété d'un cadre

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