101 votes

Différence entre _self, _top et _parent dans l'attribut cible de la balise d'ancrage

Je sais _blank ouvre un nouvel onglet lorsqu'il est utilisé avec la balise d'ancrage et il existe également des cibles auto-définies que j'utilise lorsque je me sers de framesets, mais j'aimerais connaître la différence entre _parent , _self y _top .

137voto

Brian Ellis Points 1344

Bien que ces réponses soient bonnes, je ne pense pas qu'elles répondent pleinement à la question.

L'attribut target d'une balise d'ancrage indique au navigateur la cible de la destination de l'ancre. Elles ont été initialement créées afin de manipuler et de diriger les ancres vers le système de cadres du document. C'était bien avant que les CSS ne viennent en aide aux développeurs HTML.

Alors que target="_self" est utilisé par défaut par le navigateur et la cible la plus courante est target="_blank" qui ouvre l'ancre dans une nouvelle fenêtre (qui a été redirigée vers les onglets par les paramètres du navigateur habituellement). Le site "_parent" , "_top" y framename restent un mystère pour ceux qui ne sont pas familiers avec l'époque où la construction de sites iframe était la tendance.

target="_self" Cela ouvre une ancre dans le même cadre. Ce qui est déroutant, c'est qu'étant donné que nous n'écrivons généralement plus dans des cadres (et que la balise frame y frameset sont obsolètes en HTML5), les gens supposent qu'il s'agit d'une fonction de la même fenêtre. Au contraire, si cette ancre était imbriquée dans des cadres, elle s'ouvrirait dans une sorte de mode "sandbox", c'est-à-dire uniquement dans ce cadre.

target="_parent" Ouvrira le niveau supérieur suivant d'un cadre s'ils sont imbriqués l'un dans l'autre.

target="_top" Il sort de tous les cadres dans lesquels il est imbriqué et ouvre le lien en tant que document supérieur dans la fenêtre du navigateur.

target="framename Cette fonction, initialement dépréciée, a été réintroduite dans HTML5. Elle permet de cibler le cadre exact en question. Bien que le name était la méthode appropriée ; cette méthode a été remplacée par l'utilisation de l'option id étiquette d'identification.

<!--Example:-->

<html>
<head>
</head>
<body>
<iframe src="url1" name="A"><p> This my first iframe</p></iframe>
<iframe src="url2" name="B"><p> This my second iframe</p></iframe>
<iframe src="url3" name="C"><p> This my third iframe</p></iframe>

<a href="url4" target="B"></a>
</body>
</html>

22voto

Binaya Points 344

Vous trouverez ci-dessous une image montrant des cadres imbriqués et l'effet de différentes valeurs cibles, suivie d'une explication de l'image.

Different target values.1

Imaginons une page web contenant 3 éléments imbriqués <iframe> alias "frame"/"frameset". Donc :

  • la page web/navigateur la plus extérieure est le contexte de départ
  • la page web la plus à l'extérieur est le parent du cadre 3
  • le cadre 3 est le parent du cadre 2
  • le cadre 2 est le parent du cadre 1
  • le cadre 1 est le cadre le plus intérieur

Les attributs de la cible ont alors ces effets :

  • Si la trame 1 a un lien avec target="_self" le lien cible la trame 1 (c'est-à-dire les cibles du lien le cadre contenant le lien (c'est-à-dire qu'il se cible lui-même))
  • Si la trame 1 a un lien avec target="_parent" le lien cible la trame 2 (c'est-à-dire les cibles de lien le cadre parent )
  • Si la trame 1 a un lien avec target="_top" le lien vise la page web initiale (c'est-à-dire que le lien vise le cadre le plus haut/le plus extérieur ; (dans ce cas, le lien saute la trame 3 du grand-parent))
    • Si le cadre 2 a un lien avec target="_top" le lien également cible la page web initiale (c'est-à-dire qu'une fois de plus, le lien cible la page web initiale). cadre supérieur/extérieur )
  • Si l'un de ces cadres a un lien avec target="_blank" le lien cible un contexte auxiliaire de navigation , alias un "nouvelle fenêtre" / "nouvel onglet".
    • Cela s'applique au cadre 3, au cadre 2, au cadre 1 et à la page web la plus extérieure. Attention au "tabnabbing" en cas de target="_blank" ; utiliser le rel="noopener" attribut

16voto

Jukka K. Korpela Points 71599

Section 6.16 Noms des cibles du cadre dans la spécification HTML 4.01 définit les significations, mais elle est en partie dépassée. Elle fait référence à "Windows", alors que les ébauches HTML5 parlent de manière plus réaliste de "contextes de navigation", puisque les navigateurs modernes utilisent souvent des onglets au lieu de Windows dans ce contexte.

En bref, _self est la valeur par défaut (le contexte de navigation actuel, c'est-à-dire la fenêtre ou l'onglet en cours), de sorte qu'il n'est utile que pour remplacer une valeur <base target=...> réglage. La valeur _parent se réfère au jeu de cadres qui est le parent du cadre actuel, alors que _top "sort de tous les cadres" et ouvre le document lié dans toute la fenêtre du navigateur.

16voto

Srinivas Points 187

target="_blank"

Ouvre une nouvelle fenêtre et affiche les données correspondantes.

target="_self"

Ouvre la fenêtre dans le même cadre, c'est-à-dire la fenêtre existante elle-même.

target="_top"

Ouvre le document lié dans le corps complet de la fenêtre.

target="_parent"

Ouvre les données dans la taille de la fenêtre parent.

4voto

Syed Maqsood Points 49

Voici un exemple pratique d'une balise d'ancrage avec différents types de balises

Attribut de la cible

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X