Javascript 2 : popup et attribut rel

J'ai modifié deux scripts utilisés sur le site suite à la publication des tutoriels d'Olivier Patry sur Alsacréations. Il s'agit de l'ouverture de certains liens sous forme de popup et de la gestion des galeries d'images.

Cependant, je viens de lire un article, « Scripting away Validation Concerns », qui explique aussi comment générer des fenêtres popup sans encombrer le code HTML de commandes javascript. Cette technique ne fait pas appel à une classe, comme celle d'O. Patry, mais à l'attribut rel qui permet de définir le type de lien. Et parmi les types prédéfinis dans HTML, on trouve glossary, ce qui me convient à merveille puisque le popup conduit vers le glossaire.

Reste le "problème" de la mise en forme par CSS. Les liens vers le glossaire sont différenciés des autres (liens vers une autre page du site ou vers l'extérieur) par une icône via une classe spécifique, def. Dans le code HTML, cela donne :

<a href="lien_vers_glossaire" title="Lire la définition" class="def">Mot_à_définir</a>

Il me suffit ensuite d'écrire dans la feuille de style :

a.def {
    background-image: url(lien_glossaire.png);
}

C'est donc cette classe que j'ai utilisé pour implémenter la technique de popup décrite par O. Patry.

Maintenant, si je met en place la méthode utilisant l'attribut rel, qui est à certains égards plus élégante et plus logique (pour ce cas particulier), le code HTML devient :

<a href="lien_vers_glossaire" title="Lire la définition" rel="glossary">Mot_à_définir</a>

Pour mettre en forme ce lien caractérisé par l'attribut rel, il me faut utiliser un sélecteur d'attribut dans la feuille de styles :

a[[rel='glossary']] {
    background-image: url(lien_glossaire.png);
}

Alors, où est le problème me direz-vous ? Vous ne voyez vraiment pas ?! Et bien tout fonctionne à merveille avec les navigateurs web Mozilla/Firefox, Opera… mais pas avec Internet Explorer car il ne comprend pas les sélecteurs d'attributs.

Pas d'icône spécifique pour les liens vers le glossaire avec le navigateur de Microsoft donc. Encore heureux que le script modifié fonctionne, lui...