Ouvrir une fenêtre en HTML strict

La technique classique pour forcer l'affichage de la cible d'un lien dans une nouvelle fenêtre est l'utilisation de l'attribut target de l'élément a :

<a href="" target="_blank"></a>.

Ce code est correctement interprété par le navigateur. Il est conforme à la norme transitional mais pas à la norme strict.

Afin de respecter la norme strict et ses attendus méthodologiques, on peut utiliser l'attribut rel. Cet attribut sera interprété par le client 1) suivant l'ergonomie souhaitée par les développeurs de l'application Web. Le mode de co-occurrence des contenus des deux pages n'est alors plus limité à la superposition de deux fenêtres. On peut cependant implémenter ce mécanisme “classique” :

<script type="text/javascript"">
function explanationLinks() {   
 if (!document.getElementsByTagName) return;   
 var anchors = document.getElementsByTagName("a");   
 for (var i=0; i<anchors.length; i++) {   
   var anchor = anchors[i];   
   if (anchor.getAttribute("href") &&   
       anchor.getAttribute("rel") == "explains")   
     anchor.target = "_blank";   
 }   
}   
window.onload = explanationLinks;
</script>
...
<a href="options.html" rel="explains">l'option anti-dégorgement</a>

En l'absence de code javascript ou en cas de désactivation de javascript sur le client, on revient au comportement du navigateur nu : effacement de l'ancien contenu et remplacement par le nouveau, dans la même fenêtre.

Ce code javascript illustre le fait qu'il s'agit d'une ergonomie particulière (ouverture dans une autre fenêtre sur activation du lien) pour une sémantique donnée (explains) ; un même document pouvant être appréhendé à travers plusieurs ergonomies, via différents supports, par exemple. Et on peut différencier les mécanismes (en écrivant le code ad hoc) selon les sémantiques.

1)
Le navigateur enrichi du code javascript chargé avec la page courante