![]() |
Martin Wernecke |
|
|
|
| E-Mail: |
|
| Homepage-URL: |
|
Il s'agit ici d'un article traduit de l'allemand par la rédaction de SELFHTML actuel. Veuillez poser vos questions relatives à cet article uniquement à son auteur, prenant compte que celui-ci ne maîtrise peut-être pas la langue française!
Une carence lors de l'emploi de jeux de cadres réside dans la difficulté pour d'autres sites de poser des liens directs aux pages de cadres. Ce problème est traité dans SELFHTML au chapitre
Possibilités d'application judicieuse pour les cadres.
Un exemple: à l'adresse
http://www.mairie-lille.fr/
on peut consulter la page d'accueil de la belle ville de Lille dans le Nord. Elle est constituée d'un jeu de cadres. Ainsi les visiteurs peuvent-ils grâce à une barre de menus appeler par exemple une page d'informations sur la célèbre braderie qui est affichée dans le cadre principal. Si l'on référence cette page directement, en entrant
par exemple
http://www.mairie-lille.fr/braderie/index.htm dans la ligne d'adresse du navigateur, la page d'informations sur la braderie de Lille sera affichée sans les cadres qui l'entourent. Ceci n'est pas seulement fâcheux pour l'esthétique - le lecteur qui tombe sur cette page grâce à un moteur de recherche ne dispose pas de la possibilité d'accéder, grâce au cadre de navigation, aux autres offres de la page d'accueil.
Il est possible de pallier cet effet indésirable grâce à quelques lignes de JavaScript. À cet effet, il faut dans un premier temps intégrer un script dans chaque page de cadres; ce script vérifie après le chargement de la page, si un jeu de cadres existe. Si ce n'est pas le cas, le jeu de cadres est alors chargé. Il est communiqué simultanément au jeu de cadres, la page à partir de laquelle le chargement est intervenu.
<head>
...
<script type="text/javascript">
<!--
function verificationFrameset() {
if(!parent.cadre_navigation_xyz)
location.href="http://www.xy.fr/sous_repertoireXY/index.htm?" + location.pathname;
}
//-->
</script>
</head>
<body onLoad='verificationFrameset()'>
... |
Avec if(!parent.cadre_navigation_xyz) il est vérifié si un cadre de navigation nommé 'cadre_navigation_xyz' existe. Placez ici à la place de cadre_navigation_xyz le nom d'un cadre choisi pour l'identification du jeu de cadres. S'il n'existe pas, c'est sur la page de cadre que l'on est aiguillé. Grâce à location.href la nouvelle URL est fixée. Mentionnez comme cible l'URL de la page qui contient le jeu de cadres, suivie d'un point d'interrogation. Le chemin de la page actuelle suit ce dernier grâce à location.pathname. Cela permet ensuite d'afficher la page actuelle dans le jeu de cadres.
La page avec la définition du jeu de cadres contient de son côté une fonction qui est lancée après le chargement. Celle-ci vérifie si le lien par lequel le jeu de cadres a été adressé contient une chaîne de caractères à la suite d'un point d'interrogation. Si c'est le cas, cette chaîne de caractères est alors extraite (il s'agit du chemin de la page de cadre qui appelle) et la page de cadre est chargée dans le cadre correspondant.
<head>
...
<script type="text/javascript">
<!--
function verif_appel_cadre() {
var adresse_ajoutee=location.search;
if(adresse_ajoutee)
frames.cadre_principal_xyz.location.href=adresse_ajoutee.substring(1,adresse_ajoutee.length);
}
//-->
</script>
</head>
<frameset cols="60,*" onLoad="verif_appel_cadre()">
<frame name="cadre_navigation_xyz" src="links.htm">
<frame name="cadre_principal_xyz" src="start.htm">
</frameset>
... |
L'objet location contient dans sa propriété location.search une chaîne de caractères placée éventuellement à la suite d'un point d'interrogation à la fin de la ligne d'adresse. Si cette chaîne n'est pas vide et qu'elle contient donc le chemin de la page de cadre qui appelle, celle-ci est chargée avec frames.cadre_principal_xyz.location.href=adresse_ajoutee.substring(1,adresse_ajoutee.length) dans le cadre nommé 'cadre_principal_xyz'. L'application de la fonction substr() à la fin de la ligne élimine le point d'interrogation du début de la chaîne.
|
|