dans la page principale. Pour plus de précisions, consulter un cours HTML.
Frame
Les frames ne sont pas très utilisées en JS, mais il est important de savoir quelques détails en cas d’utilisation de frames au niveau HTML. Il est important, lorsque le JS est utilisé, de préciser le nom de la frame dans la balise .
Exemple 22.117 – Attribut name des frames
Ce nom ne paraît pas très utile en HTML, mais il prend toute son importance en JS. Il sera utilisé dans deux cas : la cible des liens ainsi que pour accéder à un élément d’une autre frame de la page.
Lien hypertexte
Lorsque de l’utilisation des frames, il peut s’avérer utile d’afficher une page dans une frame différente de celle où se trouve le lien. C’est là où intervient l’attribut target de la balise . Il permet d’indiquer la frame où l’on veut que la page appelée s’affiche. Voici la syntaxe :
texte
La référence indiquée dans l’attribut target peut être de deux types. Dans un premier cas, il s’agit du nom de la frame déclarée dans la page principale, cas où il faut savoir ce nom. Sinon, si on fait référence au cadre parent, on indiquera « _parent », et si on fait référence à la fenêtre complète, on indiquera « _top ».
Exemple 22.118 – Attribut target des liens
cliquez ici
ou ici
Accès aux éléments des frames
Lorsque de l’utilisation des frames, il est souvent nécessaire en JS d’accéder aux éléments des autres frames. L’objet window – qui a été décrit précédemment – fournit de quoi le faire. Il contient l’objet parent, qui possède les mêmes propriétés que lui.
Objet frames[]
La première façon d’accéder aux éléments d’une autre frame se fait bien sûr par le tableau frames[] – propriété de parent – dont le numéro des frames est attribué dans l’ordre de déclaration de celles-ci. On accède ensuite à chaque élément de la frame ainsi qu’à ses propriétés et méthodes. La syntaxe est la suivante :
parent.frames[i].objet.propriété
parent.frames[i].objet.méthode()
Exemple 22.119 – Objet frames[]
parent.frames[1].form1.action = "get";
Exemple 22.120 – Objet frames[]
parent.frames[1].form1.button1.value = "Click";
Dans l’exemple ci-dessus, on accède à la valeur du bouton appelé « Button1 » du formulaire nommé « form1 ».
L’autre façon d’accéder aux éléments d’une frame est d’utiliser son nom. Ce sera alors un objet de parent. Il faut donc prendre soin à donner un nom aux frames lors de leur déclaration. On accède ensuite à chaque élément de la frame ainsi qu’à ses propriétés et méthodes.
parent.nom.objet.propriété
parent.nom.objet.méthode()
Les exemples de la section précédente peuvent être écrits de la façon suivante, sans aucune différence au niveau du résultat.
Exemple 22.121 – Nom de frame
parent.frame1.form1.action = "get";
Exemple 22.122 – Nom de frame
parent.frame1.form1.button1.value = "Click";
Exemple concret
L’exemple 22.7 permet de faire un compteur dans lequel les secondes impaires sont affichées une frame et les secondes paires sur l’autre frame.
Exemple 22.123 – Compteur sur deux frames
New Document
Ci-dessous, les deux fichiers servant de frames dans l‘exemple ci-dessus. Elles sont nommées respectivement « 1.htm » et « 2.htm ».