Je me souviens avoir lu quelque part que dans HTML5, il n'était plus acceptable de l'utiliser target="_blank"
en HTML5, mais je ne le trouve pas maintenant.
Est-il correct de continuer à utiliser target="_blank"
?
Je sais que c'est généralement considéré comme une mauvaise idée, mais c'est le moyen le plus simple d'ouvrir une nouvelle fenêtre pour quelque chose comme un PDF, et cela ne vous oblige pas non plus à compter sur JavaScript.
javascript
html
window
Darryl Hein
la source
la source
target
et al. exister. Parfois, c'est une nécessité. Une page générée dynamiquement avec un JS avec état, par exemple, où une iframe est moins souhaitable qu'un nouvel onglet (par exemple, la visualisation d'un PDF, comme l'indique l'OP). Ou lorsqu'un site sécurisé (comme une banque) vous envoie vers un lien externe mais n'autorise pas l'utilisation du bouton de retour en raison de l'expiration du contenu. Comme toutes les choses, cet attribut HTML n'est pas une «mauvaise idée» à utiliser, mais il doit être utilisé avec réflexion et soin, comme avec chaque bibliothèque, classe, fonction et propriété dans toute la programmation.Réponses:
Il semble que
target="_blank"
tout va bien. Il est répertorié en tant que mot clé de contexte de navigation dans le dernier brouillon HTML5 .la source
target="_blank"
provoquera l'ouverture d'une nouvelle fenêtre chaque fois que l'utilisateur cliquera sur le lien. À moins que ce ne soit vraiment ce que vous voulez (et c'est rarement le cas), envisagez de l'utilisertarget="somethingUnique"
pour que l'utilisateur n'obtienne qu'une seule fenêtre, même s'il clique sur le lien plusieurs fois. Cela fait un UX beaucoup plus agréable.target="_blank"
c'est bien est celui des boutons de partage.Il est correct d'utiliser
target="_blank"
; Cela a été supprimé dans XHTML car le ciblage de nouvelles fenêtres affichera toujours l'alerte contextuelle dans la plupart des navigateurs. XHTML affichera toujours une erreur avec l'attribut cible dans une validation.HTML 5 l'a ramené parce que nous l'utilisons toujours. C'est notre ami et nous ne pouvons pas lâcher prise.
N'abandonne jamais.
la source
Bien que le
target="_blank"
soit acceptable en HTML5 , j'essaie personnellement de ne jamais l'utiliser (même pour ouvrir des PDF dans une nouvelle fenêtre).Le HTML devrait définir le sens et le contenu . Posez-vous la question: «La signification de l'
a
élément changerait-elle si l'target
attribut était supprimé?» Sinon, le code ne doit pas entrer dans le HTML. (En fait, je suis surpris que le W3C l'ait gardé ... Je suppose qu'ils ne peuvent vraiment pas lâcher prise.)Le comportement du navigateur , en particulier le comportement interactif avec l'utilisateur , doit être implémenté avec des langages de script côté client comme JavaScript. Puisque vous voulez que le navigateur se comporte d'une manière particulière, c'est-à-dire en ouvrant une nouvelle fenêtre, vous devez utiliser JS. Mais comme vous l'avez mentionné, ce comportement oblige le navigateur à s'appuyer sur JS. (Bien que si votre site se dégrade gracieusement, ou s'améliore progressivement, ou quoi que ce soit , cela devrait toujours être bon. Les utilisateurs avec JS désactivé ne manqueront pas grand-chose.)
Cela étant dit, aucune de ces réponses n'est la bonne. Il y a quelque part l'opinion selon laquelle la façon dont un lien s'ouvre devrait finalement être décidée par l'utilisateur final . Prenons cet exemple.
Cela étant dit, les développeurs Web devraient indiquer clairement où vont leurs liens, quels types et / ou formats de sources ils référencent et ce qu'ils font. Les info-bulles peuvent être votre ami (sauf si vous utilisez une tablette ou un téléphone; dans ce cas, spécifiez-les sur le site mobile). Nous savons tous à quel point il est nul d'être emmené dans un endroit auquel nous ne nous attendions pas ou de faire quelque chose que nous ne voulions pas.
la source
C'est aussi le moyen le plus simple d'ennuyer les utilisateurs non Windows. Le PDF s'ouvre très bien dans les navigateurs sur d'autres plates-formes. L'ouverture d'une nouvelle fenêtre perturbe également l'historique de navigation et complique les choses sur les petites plates-formes comme les smartphones.
N'ouvrez PAS de nouvelles fenêtres pour des éléments comme PDF simplement parce que les anciennes versions de Windows étaient cassées.
la source
La plupart des développeurs Web utilisent
target="_blank"
uniquement pour ouvrir des liens dans un nouvel onglet. Si vous utiliseztarget="_blank"
uniquement pour ouvrir des liens dans un nouvel onglet, il est vulnérable à un attaquant. Lorsque vous ouvrez un lien dans un nouvel onglet (target="_blank"
), la page qui s'ouvre dans un nouvel onglet peut accéder à l'onglet initial et modifier son emplacement à l'aide de lawindow.opener
propriété.Code Javascript:
La prévention:
la source
Bien que la cible soit toujours acceptable en HTML5, elle n'est pas préférée. Pour créer un lien vers un fichier PDF, utilisez l' attribut de téléchargement au lieu de l'attribut cible.
Voici un exemple:
Si le nom de fichier d'origine est codé pour un stockage de fichier unique, vous pouvez spécifier un nom de téléchargement convivial en attribuant une valeur à l'attribut de téléchargement:
Gardez à l'esprit que si la plupart des navigateurs modernes prennent en charge cette fonctionnalité, certains ne le peuvent pas. Voir caniuse.com pour plus d'informations.
la source
Tout à fait!
http://www.w3.org/TR/2010/WD-html5-20100624/text-level-semantics.html#the-a-element
la source
Vous pouvez le faire de la manière suivante avec jquery, cela l'ouvrira dans une nouvelle fenêtre:
la source
Je pense que l'attribut cible est obsolète pour l'
<link>
élément, non<a>
, c'est probablement pourquoi vous avez entendu dire qu'il n'est plus censé être utilisé.la source