SELFHTML/Quickbar
JavaScript
Exemples d'application
![]() |
Changer simultanément deux frames |
![]() |
|
![]() |
Celui qui a déjà conçu un projet HTML avec plusieurs Frames,
réalise combien il peut être souhaitable quelquefois lors de l'exécution
d'un lien, de modifier non seulement le contenu d'une fenêtre frame, mais celui de
deux ou de plusieurs frames simultanément. Maintenant, on peut dans de tels cas
mettre un lien à un fichier, qui définit lui un nouveau jeu de frames
correspondant. Mais si vous avez beaucoup de liens de ce genre, ce procédé
deviendra vite lourd. Comme alternative à cette solution, vous pouvez vous faire
assister d'un JavaScript.
Attention: Pour une meilleure orientation dans l'exemple, celui-ci contient des liens aux explications respectives par exemple: 1*. Ces liens ne font pas partie du code source. Si vous copiez cet exemple dans un éditeur, vous devez effacer ces liens, faute de quoi vous recevriez des messages d'erreur JavaScript.
<html> <head> <title>Test de frames</title> </head> 1* <frameset cols="30%,*"> <frame src="liens.htm"> <frameset rows="25%,*"> <frame src=bienvenue1.htm"> <frame src="bienvenue2.htm"> </frameset> </frameset> </html> |
<html> <head> <title>Liens</title> <script language="JavaScript"> <!-- 2* function deuxFrames(URL1,F1,URL2,F2) { parent.frames[F1].location.href=URL1; parent.frames[F2].location.href=URL2; } //--> </script> </head> <body text=#000000 link=#0000CC vlink=#000099 alink=#0000FF> <h1>Liens</h1> 3* <a href="javascript:deuxFrames('susan1.htm',1,'susan2.htm',2)">Susan Sarandon</a> <br> <a href="javascript:deuxFrames('jack1.htm',1,'jack2.htm',2)">Jack Nicholson</a> </body> </html> |
définir
un jeu de frames
Dans l'exemple est établi un fichier cadre.htm
qui prépare un jeu de frames pour une base de données d'acteurs. Le
jeu de frames a la configuration suivante:
À
gauche, il y a une colonne avec des liens aux différents acteurs. Les liens se
trouvent dans le fichier liens.htm. À droite se trouvent deux frames. Celle
du haut, plus petite, est censée contenir une photo de l'acteur désiré et les faits marquants
de sa vie. Celle du bas, plus grande, doit proposer des informations exhaustives,
par exemple une description de sa vie et des informations concernant les films
auxquels il a participé. À l'appel du jeu de frames est affiché à gauche le
fichier liens.htm. À droite sont affichés des fichiers de
bienvenue du projet, nommés bienvenue1.htm et bienvenue2.htm.
définir une fonction
JavaScript pour changer deux frames
Dans le projet, les liens qui lorsqu'on les clique doivent modifier le contenu des deux
frames de droite sont notés dans le fichier liens.htm. C'est pourquoi le
code JavaScript nécessaire est également noté dans ce fichier.
Dans l'entête du fichier, donc entre <head> et </head>, est
défini un passage
JavaScript avec le repère HTML prévu à cet effet
<script language="JavaScript">...</script>.
À l'intérieur de ce passage, une
fonction
nommée deuxFrames() est définie. Cette fonction attend quatre
paramètres:
1. l'adresse URL du contenu désiré pour la première fenêtre frame (URL1)
2. l'index de la fenêtre frame désirée dans le jeu de frames (F1)
3. l'adresse URL du contenu désiré pour la deuxième fenêtre (URL2)
4. l'index de la fenêtre frame désirée dans le jeu de frames (F2)
Cette fonction a été définie généralement,
vous pouvez donc vous en servir à cette fin
dans des jeux de frames tout à fait différents.
Dans la fonction, il y a deux instructions. Dans la première instruction,
l'adresse URL souhaitée est affectée à la première fenêtre frame souhaitée,
dans la deuxième instruction, la deuxième adresse URL souhaitée est affectée
à la deuxième fenêtre frame souhaitée. Par parent il est
possible, à l'intérieur d'un jeu de frames, d'adresser le jeu de fenêtres
frames complet. Avec parent.frames[n], des fenêtres frames déterminées distinctes
peuvent être adressées dans le jeu de frames. L'index commence à 0 pour le
comptage, c'est à dire que la première fenêtre définie dans le jeu de frames
sera adressée avec parent.frames[0], la deuxième avec parent.frames[1]
etc. La fonction deuxFrames reçoit comme paramètres transmis les
index de fenêtres. C'est pour cette raison que par exemple on trouve dans la
première instruction parent.frames[F1]. Par location.href,
une adresse URL peut être adressée, par exemple quelconque fichier HTML dans
le même projet. Avec l'expression complète parent.frames[F1].location.href=URL1;,
une adresse URL quelconque est affectée à une fenêtre frame d'un jeu de frames.
Étant donné que deux frames doivent être changées simultanément, il y a deux
instructions de ce type.
noter un lien pour changer deux frames
Le fichier liens.htm de l'exemple contient des liens à des
informations sur Susan Sarandon et Jack Nicholson. Pour que, lorsque l'on clique
sur un de ces liens, les deux autres fenêtres frames soient modifiées
simultanément, on n'indique pas avec la mention href= une
adresse URL comme d'habitude, mais le mot clé javascript, suivi de
deux points et de l'appel de la fonction définie dans l'entête de fichier: deuxFrames().
C'est à cette occasion que les quatre paramètres attendus sont transmis.
Pratiquez de la même façon pour les autres liens.
![]() | |
après:![]() |
![]() |
avant:![]() |
![]() |
SELFHTML/Quickbar
JavaScript
Exemples d'application
Serge François, 13405@free.fr