Production de documents WWW - Université de Genève, CUI ©

Groupe VP-GL=>Cours en-ligne=>Production de documents WWW=>Plan du cours=>Le langage HTML=>Les "Frames"...

Les "Frames", pourquoi ne pas les utiliser?

Les frames constituent une extension du langage HTML, initialement introduite dans Netscape, puis aussi dans Internet Explorer et qui permet de subdiviser la fenêtre du butineur en régions pouvant chacune contenir un document HTML différent (exemple).

Bien que cette extension fasse maintenant partie du standard officiel (ils sont introduit officiellement dans HTML 4.01), un certain nombre d'arguments plaident en défaveur de leur utilisation:

  1. Quand le lecteur sauve un "bookmark" pour un document qu'il/elle est en train de lire, alors que ce document apparaît dans un "frame", c'est l'URL du document initial qui a créé le(s) frame(s) qui sera sauvée dans le "bookmark" et non pas l'URL du document en train d'être lu. Il est généralement très difficile de retrouver l'URL réelle du document courant pour revenir très rapidement à ce document. Il faut toutefois noter que la version 4 de Netscape Navigator offre maintenant la possibilité de créer un "bookmark" pointant vers un frame en utilisant le menu jaillissant que l'on peut faire apparaître avec le bouton droit de la souris.
  2. D'une façon similaire, le champs du butineur qui montre l'URL du document courant (champs Location dans Netscape) ne montre pas réellement l'URL du document courant lorsque des frames sont utilisés, mais plutôt l'URL du document qui a initialement créé ces frames. Les lecteurs et lectrices du site ne peuvent donc pas facilement voir où ils et elles vont durant leur visite du site.
  3. Les frames ne font partie du standard officiel de syntaxe HTML que depuis peu et certains butineurs ne peuvent pas afficher les documents du site si certaines précautions n'ont pas été prises lors de la conception. La conception de documents pouvant être lus aussi bien avec les butineurs supportant les frames qu'avec ceux qui ne les supportent pas amène un coût supplémentaire qui n'en vaut pas vraiment la peine.
  4. Avec la plupart des butineurs, l'impression de documents contenant des frames ne se fait pas correctement. A cet égard, Internet Explorer s'en tire mieux que Netscape puisqu'il permet de choisir entre l'impression de chaque "frame" individuellement et l'impression de l'ensemble des documents tels qu'ils apparaissent à l'écran, dans la fenêtre du butineur.
  5. Dans Netscape Navigator version 4, le menu jaillissant associé à au bouton droit de la souris offre un choix beaucoup plus réduit d'options lorsqu'il apparaît dans un frame que lorsqu'il apparaît dans un document sans frame.
  6. Un document composé de plusieurs frames implique le chargement de plusieurs fichiers (un par frame). Le temps de chargement total sera donc plus long.

Il existe toutefois une catégorie de "frame" dont l'utilisation ne pose pas autant de problèmes: les "Inline Frames"

Mais, plutôt que d'utiliser les frames, on peut utiliser des tableaux. Par exemple, au lieu d'un frame "table des matières" et d'un frame "document courant", on peut utiliser un tableau à une ligne et deux colonnes. La cellule de gauche contiendra la table des matières et celle de droite le contenu principal du document. Pour remédier à l'inconvénient de devoir inclure (et par conséquent, dupliquer) la table des matières dans tous les documents du site, on peut utiliser un mécanisme appelé Server-Side Includes qui permet de mettre dans la cellule de gauche un commentaire HTML (par exemple <!-- include virtual="/Table.html" -->), dans une syntaxe bien particulière, qui sera détecté par le serveur au moment de la transmission du document vers un client et remplacé par le contenu d'un fichier dans lequel on aura mis le code HTML correspondant à la table des matières.

Le mécanisme de frames permet à n'importe qui de faire apparaître un de vos documents sur son site. Si vous voulez éviter cela, vous pouvez insérer le script Javascript suivant au tout début de la section <head> de votre document:

<script language="JavaScript">
<!-- // I don't want to be framed
  if (top != self)
    top.location = self.location
//-->
</script>



Bertrand Ibrahim

Dernière modification: 18.02.00

Site Hosting: Bronco