Switcher nouvelle formule

Voilà une nouvelle évolution du switcher, cette liste de liens qui permet, en activant le script créé par Paul Sowden, de changer la feuille de styles appliquée aux pages.

Au début, les liens étaient présents dans le code html des pages. Néanmoins, comme ils ne fonctionnent que lorsque le javascript est activé, cette présence était incohérente. L'étape suivante a donc été de les insérer eux aussi par javascript.

Le processus consistait à créer une liste de liens à partir de valeurs prédéfinies dans un tableau, puis d'insérer cette liste dans la page par le DOM. Mais la solution restait imparfaite, ou du moins ne tirait pas avantage de toutes les possibilités offertes par le dom car il est inutile de stocker la liste des styles dans un tableau. Il suffit de les récupérer dans le code de la page elle-même.

Quand votre page web possède plusieurs feuilles de styles alternatives, vous devez les déclarer dans le head de la dite page de la manière suivante :

<link rel="stylesheet" type="text/css" media="screen" title="defaut" href="defaut.css" />
<link rel="alternate stylesheet" type="text/css" media="screen" title="style1" href="style1.css" />
<link rel="alternate stylesheet" type="text/css" media="screen" title="style2" href="style2.css" />
 etc.

La nouvelle formulation du switcher va donc récupérer le nom de ces feuilles alternatives dans les balises head.

// Récupérer les balises 'link'
sLink = document.getElementsByTagName('link');
  // Créer un tableau pour stocker le nom des styles
  var tLink = new Array();
  tLink[0] = 'sans style';
  var t = 1;
  // Récupérer le nom des styles via les balises 'link'
  for (var s = 0; s < sLink.length; s++) {
    if (sLink[s].rel == 'alternate stylesheet') {
      tLink[t] = sLink[s].title;
      t++;
    }
  }
}

Il ne reste plus ensuite qu'à créer les liens correspondants à partir de ces noms.

Pour une raison que je ne m'explique pas encore, le switcher ne fonctionne pas sous Opera.