SELFHTML

frames

Page d'information: vue d'ensemble

vers le bas frames: généralités sur l'utilisation
vers le bas Accéder à des JavaScripts dans d'autres cadres

Propriété:

vers le bas length (nombre de cadres)

Sous-objets:

Autre page d'information document
Autre page d'information event
Autre page d'information history
Autre page d'information location

 vers le bas 

frames: généralités sur l'utilisation

Avec l'objet frames vous avez accès aux Chapitre: vue d'ensemble Cadres, à savoir à un jeu de cadres et à ses fenêtres cadres définis dans un fichier HTML.

Étant donné que chaque fenêtre cadre représente une fenêtre distincte pour le navigateur, l'objet frames est en fin de compte une variante de l'objet Autre page d'information window l'objet fenêtre plus général. Toutes les propriétés et méthodes qui font partie de l'objet window peuvent être aussi utilisées sur l'objet frames donc sur des fenêtres cadres distinctes. L'objet frames ne représente un objet distinct que parce qu'il comprend une propriété supplémentaire et qu'un certain nombre de particularités pour l'adressage de fenêtres cadres en JavaScript sont à observer:

Schéma 1 / exemple 1:

parent.frames[#].propriété/méthode();

parent.frames[1].location.href = "sport.html";

Schéma 2 / exemple 2:

parent.nomdecadre.propriété/méthode();

parent.fenetredroite.close();

Explication:

parent est un nom de fenêtre réservé que vous pouvez utiliser pour adresser les fenêtres d'un jeu de cadres. À la place de parent vous pouvez également utiliser top. Avec parent vous adressez la fenêtre mère de la fenêtre cadre actuelle, avec top dans chaque cas la fenêtre d'affichage du navigateur la plus élevée dans la hiérarchie.

Vous pouvez adresser les fenêtres cadres de deux façons:

Étant donné que l'objet frames est à vrai dire une variante de l'objet Autre page d'information window vous pouvez non seulement utiliser toutes les propriétés et méthodes de l'objet window sur l'objet frames, mais aussi toutes les autres qui dans la hiérarchie sont sous l'objet window. De la même façon que vous pouvez par exemple modifier grâce à window.document.forms[0].elements[0].value = "Serge" le contenu d'un champ de saisie d'un formulaire dans un fichier HTML normal, vous pouvez obtenir la même chose dans un jeu de cadres avec parent.frames[1].document.forms[0].elements[0].value = "Serge".

Un exemple d'application typique pour l'utilisation de l'objet frame se trouve dans cette documentation: Autre page d'information  changer simultanément deux cadres. .

 vers le hautvers le bas 

JavaScript 1.0Netscape 2.0MS IE 3.0 Accéder à des JavaScripts dans d'autres cadres

Avec la même syntaxe que celle qui vous permet d'accéder à des éléments HTML situés dans d'autres fenêtres cadres, vous pouvez accéder également à des Javascripts notés dans une autre fenêtre cadre que la fenêtre active. Vous pouvez ainsi lire les variables d'un autre script et appeler les fonctions d'un autre script.

L'exemple qui suit montre un jeu de cadres avec une fenêtre en haut et une autre en bas. La fenêtre du haut a reçu dans la définition du jeu de cadres le nom fenetreduhaut. À partir de la fenêtre cadre du bas, on accède à un Javascript de la fenêtre du haut.

Fichier d'exemple de la fenêtre cadre du haut:

Démonstration - nouvelle fenêtre Exemple d'affichage: aperçu

<html><head><title>Test</title>
<script type="text/javascript">
<!--
var c = 0;

function affiche_c() {
 alert(c);
}
function augmente_c() {
 c++;
 window.setTimeout("augmente_c()",100);
}
//-->
</script>
</head><body onLoad="augmente_c()">
<p>Ici la variable  <i>c</i> est simplement incr&eacute;ment&eacute;e 10 fois par seconde!</p>
</body></html>

Fichier d'exemple de la fenêtre cadre du bas:

<html><head><title>Test</title>
<script type="quot;text/javascript">
<!--
function reset_c() {
  parent.fenetreduhaut.c = 0;
}
//-->
</script>
</head><body>
<p>
<a href="quot;javascript:parent.fenetreduhaut.affiche_c()">Afficher la variable <i>c</i>!</a><br>
<a href="quot;javascript:reset_c()">Remise &agrave; l'&eacute;tat initial de la variable <i>c</i>!</a>
</p>
</body></html>

Explication:

Dans la fenêtre du haut est noté un script avec deux Autre page d'information fonctions nommées affiche_c() et augmente_c(). La fonction augmente_c() est lancée avec le gestionnaire d'événement onLoad dans le repère d'ouverture <body> et s'appelle ensuite elle-même à l'aide de la méthode Autre page d'information setTimeout() tous les 100 millièmes de seconde donc 10 fois par seconde. Ce faisant, elle incrémente à chaque fois la variable c de 1.

Dans la fenêtre du bas, sont notés deux liens. Le premier donne l'état actuel du compteur de c. Pour cela, il est accédé avec parent.fenetreduhaut.affiche_c()" à la fonction affiche_c() dans l'autre fenêtre cadre. Le deuxième lien appelle une fonction reset_c() qui est notée dans l'entête de fichier du document proprement-dit. Celle-ci accède cependant avec parent.fenetreduhaut.c à la variable c dans l'autre fenêtre cadre et remet celle-ci à 0.

 vers le hautvers le bas 

JavaScript 1.0Netscape 2.0MS IE 3.0Lesen length

sauvegarde combien de fenêtres cadres sont contenues dans une fenêtre mère.

Exemple:

Démonstration - nouvelle fenêtre Exemple d'affichage: aperçu

<html><head><title>Test</title>
<script type="text/javascript">
<!--
for(var i=0; i < parent.frames.length; i++)
 alert(parent.frames[i].name);
//-->
</script>
</head><body>
</body></html>

Explication:

Avec parent.frames.length ou top.frames.length, vous pouvez rechercher le nombre de fenêtres cadres. Dans l'exemple il est supposé que le fichier HTML est appelé dans un jeu de cadres. À la lecture du fichier, celui-ci donne à la suite avec la méthode alert() les noms de toutes les fenêtres cadres du jeu de cadres. Pour cela a été définie la boucle for. La propriété parent.frames.length sert de condition pour interrompre la boucle. Étant donné que le compteur de boucles i est incrémenté de 1 à chaque tour de boucle, c'est à chaque fois la fenêtre cadre suivante qui grâce à parent.frames[i] est adressée.

 vers le haut
page suivante Autre page d'information document
page précédente Autre page d'information window
 

© 2001 Stefan Münz / © 2002 Traduction Adresse électronique Serge François, 13405@free.fr
Adresse électronique selfhtml@fr.selfhtml.org