


_blank ouvrir une nouvelle fenêtre n'est pas conforme aux normes ?_CSS/HTML
Cet article fait référence aux articles suivants :
- Kevin Yank"Liens vers une nouvelle fenêtre dans un monde conforme aux normes"
- 《Remplacement basé sur les normes pour target="_blank" dans les liens externes》
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êtreMaintenant, écrivez-le comme ceci :
Ouvrir une nouvelle fenêtreIl 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;
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".

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Si vous avez récemment commencé à travailler avec GraphQL ou examiné ses avantages et ses inconvénients, vous avez sans aucun doute entendu des choses comme "GraphQL ne prend pas en charge la mise en cache" ou

L'API de transition Svelte fournit un moyen d'animer les composants lorsqu'ils entrent ou quittent le document, y compris les transitions Svelte personnalisées.

Combien de temps passez-vous à concevoir la présentation de contenu pour vos sites Web? Lorsque vous écrivez un nouveau blog ou créez une nouvelle page, pensez-vous à

Avec la récente montée du prix du bitcoin sur 20k $ USD, et pour lui, récemment en train de briser 30k, je pensais que cela valait la peine de reprendre une profonde plongeon dans la création d'Ethereum

Les commandes NPM exécutent diverses tâches pour vous, soit en tant que processus unique ou en cours d'exécution pour des choses comme le démarrage d'un serveur ou la compilation de code.

L'article discute de l'utilisation de CSS pour les effets de texte comme les ombres et les gradients, les optimiser pour les performances et l'amélioration de l'expérience utilisateur. Il répertorie également les ressources pour les débutants (159 caractères)

Je discutais avec Eric Meyer l'autre jour et je me suis souvenu d'une histoire d'Eric Meyer de mes années de formation. J'ai écrit un article de blog sur la spécificité CSS, et

Quelle que soit le stade dans lequel vous vous trouvez en tant que développeur, les tâches que nous effectuons - qu'elles soient grandes ou petites - ont un impact énorme dans notre croissance personnelle et professionnelle.
