Question target = "_ blank" vs. target = "_ new"


Quelle est la différence entre <a target="_new"> et <a target="_blank"> et que dois-je utiliser si je veux juste ouvrir un lien dans un nouvel onglet / fenêtre?


456
2018-02-10 23:54


origine


Réponses:


Utilisez "_blank"

Selon le Spécification HTML5:

UNE nom de contexte de navigation valide est une chaîne avec au moins un caractère qui ne commence pas par un caractère U + 005F LOW LINE. (Les noms commençant par un trait de soulignement sont réservés aux mots-clés spéciaux.)

UNE nom ou mot clé de contexte de navigation valide est une chaîne qui est soit un nom de contexte de navigation valide soit une correspondance ASCII insensible à la casse pour l'un des éléments suivants: _blank, _self, _parent ou _top. "- La source

Cela signifie qu'il n'y a pas de mot-clé tel que _new en HTML5, et pas dans HTML4 (et par conséquent XHTML) non plus. Cela signifie qu'il n'y aura aucun comportement cohérent si vous l'utilisez comme valeur pour l'attribut cible.

Recommandation de sécurité

Comme Daniel et Michael l'ont souligné dans les commentaires, lors de l'utilisation de la cible _blank pointant vers un site Web non fiable, vous devriez, en outre, définir rel="noopener". Cela empêche le site d'ouverture de jouer avec l'ouvreur via JavaScript. Voir ce post pour plus d'informations.


588
2018-02-11 00:07



En utilisant target="_blank" demandera au navigateur de créer un nouvel onglet ou une nouvelle fenêtre de navigateur lorsque l'utilisateur clique sur le lien.

En utilisant target="_new" est techniquement invalide selon les spécifications, mais pour autant que je sache, chaque navigateur se comportera de la même manière:

  • il recherchera un onglet ou une fenêtre avec le nom de contexte "_new"
  • si un onglet / fenêtre "_new" est trouvé, alors l'URL y est chargée
  • s'il n'est pas trouvé, un nouvel onglet / fenêtre est créé avec le nom de contexte "_new", et l'URL est chargée dans celui-ci

Remarque target="_new" se comportera exactement comme target="new", et ce dernier est HTML valide tandis que le premier est HTML invalide.

Ajoutant une certaine confusion à cela, dans HTML4 le target l'attribut était obsolète. En HTML5, cette décision a été inversée et fait de nouveau partie de la spécification. Tous les navigateurs prennent en charge target Quelle que soit la version de HTML que vous utilisez, certains validateurs signaleront l'utilisation comme obsolète si votre doctype est HTML4.


118
2018-01-15 02:18



TL; DR
UTILISEZ _blank

L'attribut target spécifie où ouvrir le document lié.

USAGE: target="xyz"  [don't forget double quotes]

_blank  Opens the linked document in a new window or tab
_self   Opens the linked document in the same frame as it was clicked (this is default)
_parent     Opens the linked document in the parent frame
_top    Opens the linked document in the full body of the window 
framename   Opens the linked document in a named frame

SINCE "_new" n'est pas l'un de ceux-ci, il sera sous "framename", donc si un utilisateur clique à nouveau sur cet hyperlien, il n'ouvrira pas un nouvel onglet à la place de mettre à jour l'onglet existant. Alors que dans _blank si l'utilisateur clique deux fois, 2 nouveaux onglets s'ouvrent.


24
2017-07-26 18:30



Cela peut avoir été demandé avant mais:

"tous les liens qui spécifient target =" _ new "recherchent et trouvent cette fenêtre par nom, et s’y ouvrent.

Si vous utilisez target = "_ blank", une toute nouvelle fenêtre sera créée à chaque fois, en haut de la fenêtre actuelle. "

d'ici: http://thedesignspace.net/MT2archives/000316.html


13
2018-02-10 23:59



c'est ma compréhension target = whatever cherchera un cadre / fenêtre avec ce nom. S'il n'est pas trouvé, il ouvrira une nouvelle fenêtre avec ce nom. Si whatever == "_new", il apparaîtra comme si vous utilisiez _blank sauf.....

L'utilisation de l'un des noms de cible réservés contourne la phase de "recherche". Alors, target = "_blank" sur une douzaine de liens ouvrira une douzaine de fenêtres vides, mais target = whatever sur une douzaine de liens, une seule fenêtre s’ouvrira. target = "_new" sur une douzaine de liens peut donner un comportement inconstant. Je ne l'ai pas essayé sur plusieurs navigateurs, mais ne devrait ouvrir qu'une seule fenêtre.

Au moins c'est comme ça que j'interprète les règles.


11
2018-01-25 19:56



Je sais que c'est une vieille question et la bonne réponse, utilisez _blank, a été mentionné plusieurs fois, mais en utilisant <a target="somesite.com" target=_blank>Link</a>  est un risque de sécurité.

C'est conseillé ( avantages de performance) utiliser <a href="somesite.com" target="_blank" rel="noopener noreferrer">Link</a>


11
2017-08-27 06:50



target="_blank" ouvre un nouvel onglet dans la plupart des navigateurs.


10
2018-05-26 08:13



Attention - n'oubliez pas de toujours inclure les "citations" - au moins sur Chrome, target=_blank (pas de guillemets) n'est pas le même que target="_blank" (avec des guillemets)

Ce dernier ouvre chaque lien dans un nouvel onglet / fenêtre. Le premier (guillemets manquants) ouvre le premier lien que vous cliquez dans un nouvel onglet / fenêtre, puis écrase ce même onglet / fenêtre avec chaque lien suivant que vous cliquez (également nommé avec les guillemets manquants).


8
2017-10-23 14:13