HTML - Raison historique ou technique de la cible = "_ vide" avec un soulignement?

14

Jusqu'à aujourd'hui, je me demande pourquoi target="_blank"n'est pas devenu target="blank". Je suis sûr que les navigateurs peuvent également comprendre cela.

Y a-t-il des raisons historiques ou techniques pour cette décision / spécification?

Kai Noack
la source
L'ensemble du targetconcept, bien qu'encore autorisé en HTML 5, est généralement considéré comme dépassé. w3.org/community/webed/wiki/HTML_links_-_lets_build_a_web (dans la 7 Frames and popups — just say nosection)
Jens Mühlenhoff
1
Quelqu'un peut-il m'expliquer pourquoi cette question n'a pas été migrée vers StackOverflow vers ce site? C'est un choix parfait pour SO et un très faible pour SU - selon moi.
trejder

Réponses:

21

Si vous deviez utiliser target="blank"votre lien sera ouvert dans un nouvel onglet / fenêtre. Cependant, il existe une différence subtile. Cliquez à nouveau sur le lien pour réutiliser la fenêtre qui a été ouverte la première fois au lieu d'en ouvrir une nouvelle.

Cela est dû au fait que l' targetattribut peut être utilisé pour plus que simplement ouvrir une nouvelle fenêtre. Il a quatre valeurs intégrées mais vous permet également de spécifier votre propre cible. Si vous consultez la page des écoles W3 concernée, elle affiche les options suivantes:

  • _blank Ouvre le document lié dans une nouvelle fenêtre ou un nouvel onglet
  • _self Ouvre le document lié dans le même cadre que celui sur lequel il a été cliqué (c'est la valeur par défaut)
  • _parent Ouvre le document lié dans le cadre parent
  • _top Ouvre le document lié dans le corps complet de la fenêtre
  • <framename> Ouvre le document lié dans un cadre nommé

Une grande partie de cela n'a de sens que si vous comprenez un peu les cadres HTML. L'utilisation d'une <frameset>balise HTML vous permet de diviser la fenêtre du navigateur en sections individuelles (cadres) chacune avec sa propre page. En donnant un nom à un cadre et en utilisant l' targetattribut dans vos liens, il est possible de contrôler quel cadre doit afficher le contenu pertinent.

Mais il existe des règles supplémentaires pour l'attribut cible que les navigateurs doivent appliquer:

  • Si la cible est un nom spécifié par l'utilisateur, il doit commencer par une lettre (pas de soulignement, de chiffres, etc.)
  • Si la cible est un nom spécifié par l'utilisateur mais qu'aucun cadre / fenêtre ne correspond à ce nom, créez un nouvel onglet / fenêtre en utilisant ce nom. C'est pourquoi target="blank"ça fonctionne comme ça.

Fondamentalement, il n'y a aucune raison de modifier la convention actuelle car il _blanks'agit d'un cas spécial. Le type d'origine de cadres ne peut plus être utilisé, mais il existe d'autres cas où vous pouvez avoir des objets nommés avec lesquels l'attribut cible fonctionne, par exemple des iframes qui sont des cadres uniques intégrés directement dans une page. La modification de la norme entraînerait la rupture de nombreuses pages existantes sans aucun avantage.

James P
la source
7
Vous ne devez pas vous référer à W3Schools: w3fools.com
Jens Mühlenhoff
2
Je ne suis pas en désaccord que W3Schools n'est pas le meilleur pour les directives de conception Web, ou que l'utilisation de liens avec l'attribut cible est obsolète. Cependant, j'utilisais les informations pour répondre spécifiquement à la question d'origine.
James P
1
Je pense que la liaison avec des ressources connues pour être problématiques n'est pas une bonne idée. Vous répondez très bien.
Jens Mühlenhoff
1
Je souhaitais que l' target="_blank"attribut supplémentaire ne soit pas nécessaire, mais à la place, nous pourrions simplement ajouter un signe à l'URL, par exemple un astérisque <a href="*https://www.stackoverflow.com">Stackoverflow</a>. Cela économiserait tellement de frappe :)
Kai Noack