Maison > interface Web > tutoriel CSS > le corps du texte

_blank ouvrir une nouvelle fenêtre n'est pas conforme aux normes ?_CSS/HTML

WBOY
Libérer: 2016-05-16 12:12:20
original
1546 Les gens l'ont consulté

Cet article fait référence aux articles suivants :

La manière habituelle d'ouvrir un lien dans une nouvelle fenêtre est d'ajouter target="_blank" après le lien. Il n'y a pas de problème lorsque l'on utilise le DOCTYPE transitionnel (xh tml1-transitional. dtd), mais lorsque l'on utilise le. strict DOCTYPE (xhtml1-strict.dtd), cette méthode échouera à la vérification du W3C et le message d'erreur suivant apparaîtra :

"il n'y a pas d'attribut cible pour cet élément (dans cette version HTML)"

Il s'avère que sous le strict DOCTYPE de HTML4.01/XHTML1.0/XHTML1.1, target="_blank", target="_self" et d'autres syntaxes ne sont pas valides, et nous ne pouvons les implémenter que via JavaScript.

Un ami a demandé pourquoi target="_blank" n'est pas autorisé à être utilisé ? Cet attribut est très pratique. Haha, je ne sais pas ce que pensent les experts du W3C. Pour autant que je sache, il s’agit principalement de « facilité d’utilisation et de convivialité », car les étrangers pensent qu’il est impoli d’ouvrir une nouvelle fenêtre sans le consentement de l’utilisateur ou sans invite claire. de. Que cette annulation soit raisonnable ou non, examinons la solution.

attribut rel

HTML4.0 ajoute un nouvel attribut : rel. Cet attribut est utilisé pour décrire la relation entre le lien et la page contenant le lien, ainsi que la cible du lien. rel a de nombreuses valeurs d'attribut, telles que suivant, précédent, chapitre, section, etc. Ce que nous voulons utiliser, c'est l'attribut rel="externa l". Le code original était écrit comme ceci :

Ouvrir une nouvelle fenêtre

Maintenant, écrivez-le comme ceci :

Ouvrir une nouvelle fenêtre

Il s'agit d'une méthode conforme à la norme stricte. Bien entendu, il doit être associé à un javascript pour être efficace.

javascript

Le code JS complet est le suivant :

function externallinks() { 
 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") == "external") 
   anchor.target = "_blank"; 
 } 
} 
window.onload = externallinks;
Copier après la connexion

Vous pouvez l'enregistrer en tant que fichier .js (tel que external.js), puis l'appeler via la méthode de connexion externe :

C'est tout.

Enfin, le target="new" utilisé par mon site Web est autorisé sous le DOCTYPE transitionnel, mais il ne répond pas à la norme stricte. J'utiliserai le mode strict dans la prochaine révision et changerai tous les target="new" en rel="external".

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal