Amélioration du glossaire

Nouvelle évolution du glossaire du site: la fenêtre popup qui apparaît lorsque l'on clique sur un lien-définition n'affiche plus l'ensemble du glossaire mais uniquement la définition demandée.

Comme la fonctionnalité popup est écrite en javascript, cette petite transformation de la présentation fait elle aussi appel à la manipulation du document par le DOM.

Son fonctionnement est simple : si la page du glossaire est chargée sans définition précise (glossaire.html), il ne se passe rien (la page s'affiche normalement). Par contre, si une définition est demandée, par exemple glossaire.html#dom, le script va :

  1. Effacer le contenu inutile de la page avec un display: none (dans le cas présent : l'en-tête, le pied-de-page plus quelques autres petites futilités comme le formulaire de recherche, les icônes, etc.)
  2. Effacer le contenu de la boîte redaction sauf la définition demandée.

Voici le code commenté de la fonction javascript DisplayDef :

function DisplayDef() {
  // Variable: boites à effacer
  var Box = new Array('header', 'footer', 'propagande', 'i-search', 'bouton');
  // Récupérer l'URL
  var url = document.location.href;
  // Si une ancre est demandée
  if (url.indexOf("#",0) > 0) {
    var corr = url.split('#');
    // Eviter l'ancre de retour haut de page
    if (corr[1] != 'header') {
      Id = corr[1];
      // Effacer les Boîtes
      for (j = 0; j < Box.length; j++) {
        document.getElementById(Box[j]).style.display = 'none';
      }
      // Effacer les enfants de redaction
      var RedacChild = document.getElementById('redaction').childNodes;
      for (i = 0; i < RedacChild.length; i++) {
        if (RedacChild[i].nodeType != 3) {
          RedacChild[i].style.display = 'none';
        }
      }
      // Afficher la DL de la définition
      var Def = document.getElementById(Id).parentNode;
      Def.style.display = 'block';            
    }
  }
}
Nettoyer la page pour n'afficher qu'une définition.

Le script a été testé sous Firefox 1.0.4, Mozilla 1.7, Opera 7.6 et Internet Explorer 6.0.

Comme toujours, si le javascript est désactivé dans votre navigateur, le lien-définition ménera vers la page glossaire comme n'importe quel lien.

Brève en relation :