SELFHTML/Aides à la navigation JavaScript/DOM Référence objet |
frames | |
frames: généralités sur l'utilisation
Propriété: length (nombre de cadres) Sous-objets: |
|
Avec l'objet frames
vous avez accès aux 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 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:
parent.frames[#].propriété/méthode(); parent.frames[1].location.href = "sport.html"; |
parent.nomdecadre.propriété/méthode(); parent.fenetredroite.close(); |
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:
frames
suivi entre crochets du numéro d'ordre de la fenêtre cadre désirée dans le jeu de cadres. Veillez que le comptage commence par 0, c'est à dire vous adressez la première fenêtre cadre avec frames[0]
la deuxième fenêtre cadre avec frames[1]
etc... Pour le comptage prévaut l'ordre dans lequel les commandes <frame>
sont définies dans le jeu de cadres.<frame ...>
avec l'attribut name=
.Étant donné que l'objet frames
est à vrai dire une variante de l'objet 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: changer simultanément deux 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.
<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émentée 10 fois par seconde!</p> </body></html> |
<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 à l'état initial de la variable <i>c</i>!</a> </p> </body></html> |
Dans la fenêtre du haut est noté un script avec deux 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 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.
sauvegarde combien de fenêtres cadres sont contenues dans une fenêtre mère.
<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> |
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.
document | |
window | |
SELFHTML/Aides à la navigation JavaScript/DOM Référence objet |
© 2001 Stefan Münz / © 2002 Traduction Serge François, 13405@free.fr
selfhtml@fr.selfhtml.org