Dans HTML 4.0 Strict et XHTML 1.0 STRICT, l'attribut target n'est pas autorisé dans la balise <a>, ce qui est frustrant pour les concepteurs Web. Son utilisation est toujours autorisée dans les spécifications transitoires. Mais grâce à certaines méthodes, nous pouvons résoudre ce problème.
L'attribut target a été supprimé de la spécification HTML4.0 : mais il a ajouté un autre attribut : rel. Cet attribut permet de préciser la relation entre le document contenant le lien et le document lié. Ses valeurs d'attribut (telles que : suivant, précédent, chapitre, section) sont définies dans la spécification. La plupart de ces attributs sont utilisés pour définir les relations entre de petites parties d'un document volumineux. En fait, la spécification permet aux développeurs d'utiliser librement des valeurs de propriété non standard pour des applications spécifiques.
Ici, nous utilisons une valeur personnalisée externe pour l'attribut rel afin de marquer un lien pour ouvrir une nouvelle fenêtre.
Code de lien non conforme aux derniers standards du web :
<a href="document.html" target="_blank">lien externe</a>
Utilisez l'attribut rel :
<a href="document.html" rel="external">lien externe</a>
Maintenant que nous avons construit un lien vers une nouvelle fenêtre conforme aux standards du Web, nous devons également utiliser JavaScript pour implémenter une nouvelle fenêtre. Ce que le script veut faire, c'est trouver tous les hyperliens dans le document que nous définissons comme rel="external" lors du chargement de la page Web.
Nous devons d’abord déterminer le navigateur
if (!document.getElementsByTagName) renvoie ;
getElementsByTagName est une méthode facile à utiliser dans la norme DOM1, et elle est désormais prise en charge par la plupart des navigateurs. Étant donné que certains anciens navigateurs tels que Netscape 4 et IE4 ne prennent pas en charge DOM1, nous devons l'exclure en déterminant si cette méthode existe. ces anciennes versions de navigateurs.
Ensuite, nous obtenons toutes les balises <a> du document via la méthode getElementsByTagName :
var ancres = document.getElementsByTagName("a");
Les ancres sont assignées sous forme de tableau contenant chaque balise <a>. Nous devons maintenant parcourir chaque balise <a> et la modifier :
pour (var i=0; i <ancres.longueur; i++) {
var ancre = ancres;
Recherchez la balise <a> où vous souhaitez ouvrir une nouvelle fenêtre
si (anchor.getAttribute("href") &&
Anchor.getAttribute("rel") == "externe")
Ensuite, créez la valeur d'attribut cible et attribuez la valeur "_target"
Anchor.target = "_blank",
Code complet :
fonction Liensexternes() {
if (!document.getElementsByTagName) renvoie ;
var ancres = document.getElementsByTagName("a");
pour (var i=0; i<anchors.length; i++) {
var ancre = ancres;
si (anchor.getAttribute("href") &&
Anchor.getAttribute("rel") == "externe")
ancre.target = "_blank" ;
}
}
window.onload = externalLinks ;