Maison >interface Web >tutoriel CSS >La page Web s'ouvre dans une nouvelle fenêtre target=_blank ne répond pas aux standards_Experience Exchange

La page Web s'ouvre dans une nouvelle fenêtre target=_blank ne répond pas aux standards_Experience Exchange

WBOY
WBOYoriginal
2016-05-16 12:05:502226parcourir

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

À l'origine, sous HTML4.01/XHTML1.0/XHTML1.1 strict DOCTYPE, target="_blank", target="_self" La syntaxe n'est pas valide et nous ne pouvons l'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="external". Le code qui était initialement écrit comme ceci :


Ouvrez une nouvelle fenêtre


Maintenant, il devrait être écrit comme ceci : Ouvrez une nouvelle fenêtre

Il s'agit d'une méthode standard 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 var Anchor = Anchors[i]; if (anchor.getAttribute("href") &&
Anchor.getAttribute("rel") == "external")
Anchor.target = "_blank"
}
}
window.onload = externallinks; >Vous 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".

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

"Liens vers une nouvelle fenêtre dans un monde conforme aux normes" par Kevin Yank
"Remplacement basé sur les normes pour target="_blank" dans Liens externes 》
Mise à jour le 2006.7.13
Les pages d'accueil de nombreux sites Web portails sont toutes pop-up. Je suppose que ce concept ne peut pas être modifié, du moins en Chine pour le moment, dans ce cas, ce n'est pas nécessaire. pour ajouter rel sous chaque lien , le code complet est le suivant :



Déclaration:
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