JavaScript : Gestion des frames

Dans l'exemple qui suit, le code JavaScript est exécuté dès que tous les fichiers du cadre sont chargés. (on aurait pu également utiliser onUnLoad)

<frameset rows="*,*,*" onLoad="alert('Tous les cadres sont chargés')">
  <frame name="un" src="un.htm">

    <frameset cols="*,*,*">
      <frame name="deux" src="deux.htm">
      <frame name="trois" src="trois.htm">
      <frame name="quatre" src="quatre.htm">
    </frameset>

    <frameset cols="*,*">
      <frame name="cinq" src="cinq.htm">
      <frame name="six" src="six.htm">
    </frameset>

</frameset>

Il est aussi possible, en plus de définir un événement onLoad sur la feuille de cadres, de définir un onLoad sur chacun des fichiers la composant. Cet onLoad ne se passe plus ici, dans la feuille-cadre, mais bien dans chacun des fichiers. Détail : Lors de mes tests, le onLoad du cadre s'est effectué avant le onLoad du fichier trois.htm.

J'ai également essayé de mettre un événement onLoad sur la ligne <frameset cols="*,*,*">, mais j'ai une erreur.

Lors de l'utilisation de cadres, il existe donc dans le navigateur un fichier HTML qui est invisible au navigateur, mais bien présent, qui coordonne les différents fichiers HTML à afficher au sein du fichier parent invisible.

Depuis un fichier enfant, pour faire référence au fichier-cadre, on utilise Parent. Et lorsqu'on désire faire référence au même fichier enfant que celui dans lequel on se trouve, on utilise self.

On peut également utiliser Top qui est la référence à la fenête le plus en haut de la hiérarchie.

Frames est une instruction qui permet de référencer un cadre ou une page faisant partie d'un autre cadre. Cela me paraît complexe en ce sens qu'il me semble que c'est vraiment très rare qu'on puisse avoir plusieurs cadres... Un cadre étant déjà un ensemble de fichiers HTML.