Frame (débutant)

Fermé
slopera - 26 sept. 2001 à 11:07
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 - 26 sept. 2001 à 17:44
Je suis débutante en ce qui concerne les frames.

Je suppose que c'est tout simple :
Mes frames sont organisées de la manière suivante :
page partagée en deux frames ("haut" et "bas") et celle du bas partagée en deux ("gauche" et "droite").
Je voudrais avoir le menu principal dans la frame du haut, un sous-menu dans la frame bas-gauche et un contenu dans la frame bas-droite.
Quand je clique dans le menu du haut, je voudrais que le contenu des deux frames du bas change (apparition du sous-menu spécifique et d'un texte d'invite).
Pour l'instant, j'ai mis comme target ma frame bas-gauche mais comment les faire changer en même temps ?

Merci pour vos réponses
A voir également:

1 réponse

Salut

Pour définir des frames comme tu les souhaites, il y a plusieurs solutions :

1. Un seul fichier Frameset qui définit tous les frames :
Ce fichier contiendra une définition de frame de ce type :
=== DEBUT DE CODE ===
<frameset rows="200,*">
<frame name="haut" src="menu.html">
<frameset cols="250,*">
<frame name="gauche" src="sous-menu.html">
<frame name="droite" src="contenu.html">
</frameset>
</frameset>
=== FIN DE CODE ===
L'inconvénient de ce système, c'est que tu manques de souplesse dans la gestion des TARGET : tu ne peux pas faire le lien dont tu as besoin (celui qui doit se trouver dans le menu, et qui doit changer le contenu du sous-menu et du contenu).
L'avantage est que tu n'as qu'un seul fichier Frameset... maigre avantage...


2. Deux fichiers Frameset :
=== DEBUT DE CODE FICHIER 1 ===
<frameset rows="200,*">
<frame name="haut" src="menu.html">
<frame name="bas" src="index_section1.html">
</frameset>
=== FIN DE CODE FICHIER 1 ===

Avec ce premier fichier, la page est partagée en deux. Il faut donc définir index_section1 de façon à ce qu'il partage le frame "bas" en deux :

=== DEBUT DE CODE FICHIER 2 ===
<frameset cols="250,*">
<frame name="gauche" src="sous-menu1.html">
<frame name="droite" src="contenu1.html">
</frameset>
=== FIN DE CODE FICHIER 2 ===

L'avantage de cette deuxième solution, c'est que tu pourras créer un lien dans le frame "haut" qui permettra de changer les deux frames du bas en pointant le target="bas" vers un index_section2.html qui redéfinira les pages à afficher dans les frames du bas...


J'espère que cela t'aidera, si ce n'est pas clair, n'hésite pas à demander des détails !

a+
Tittom
0
En fait, je ne comprends toujours pas avec la séparation comment on fait pour changer séparément le contenu de chacune des deux fenêtres du bas à partir d'un lien dans une fenetre du haut.

Mais j'ai trouvé une solution détournée : je fait le target sur ma frame bas-droite dans laquelle je mets :
<BODY onLoad="parent.bas_gauche.location.href='XXX.htm'">
et ainsi, le frame bas-gauche est également chargé avec ce que je voulais.

Merci quand même pour avoir répondu.
Slopera
0
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504 > slopera
26 sept. 2001 à 17:44
Tittom a fait un bon résumé des possibilité de frameset disponible, mais dans l'exemple 1. il y a une solution:

Utilise du JavaScript:

<a href="frames-gauche.htm" target="top" onClick="top.frames['frameGauche'].location.href='frames-gauche.htm'; top.frames['frameDroite'].location.href='frames-droite-defaut.htm'; return false;">lien</a>

---> href="frames-gauche.htm" target="top"
permet d'afficher le menu si le navigateur ne gère pas le JavaScript.
Le navigateur n'en tient pas compte dans le cas contraire grâce au
---> return false
Ensuite onClick de la souris, on affiche l'url voulu dans la frame Gauche et la frame Droite.

Ta solution est correcte, mais me parent plus lourde à gérer. Je te laisse voir ;o)

-= Bobinours =-
0