L’attribut HTML target="_blank" et les standards de validité W3C …

Il y a des milliers de pages et de posts de forums à ce sujet, disons simplement que l’attribut HTML target (qui, rappelons le, servait initialement à définir le cadre de destination pour l’ouverture de la page appelée par un lien) n’est effectivement pas conforme à l’esprit de la révolution XHTML.
En effet celle ci prévoit de séparer totalement le contenu du contenant, le texte et les images par exemple, de leur mise en forme. Or le choix d’un cadre de destination (outre la disparition des cadres !) est une manifestation qui impose une mise en forme à un contenu qui se devrait d’être totalement détachée de toute contrainte d’affichage.
OK… cela dit, la vie quotidienne du webmaster passe souvent par des contraintes un peu plus terre à terre que celles de respecter l’esprit d’un standard ! En particulier, il n’est pas souhaitable d’ouvrir une page extérieure à un site marchand, par exemple, en écrasant la page en cours. On perd un visiteur-client-potentiel, et c’est dur à trouver par les temps qui courent
La solution, si l’on souhaite garder un code valide w3C (c’est important pour garantir la compatibilité d’affichage entre les navigateurs), c’est de remplacer l’attribut « target » par un petit bout de code java script :
<a href="http://www.lesite.com" target="_blank">Le site</a>
deviendra donc :
<a href="http://www.lesite.com" onclick="window.open(this.href);return false">Le site</a>
…de l’usage d’un purisme modéré ! :p
@Le Bazaar : Oui, tu as raison.
Mais le but de ce billet est de créer un code valide W3C… pas de référencer sa page.
Pour cela, il y a cet autre billet : Optimier le référencement pour doper le trafic d’un site
Ça fonctionne bien mais d’un point de vue référencement cela ne transmets aucun ‘jus’ au lien externe.
Ouf ! merci, après avoir passé ma soirée à chercher des solutions, la votre fonctionne très bien !
C’est parfait, thanks pour l’astuce !
Et pour votre première question, il n’y a rien a forcer, si on ne précise rien par défaut un lien s’ouvre en _self, c’est a dire par écrasement sur la même page.
merci pour ce petit code … parfaietement comptatible W3C
Bonjour,
2 questions :
Moi, je voudrais simplement FORCER un lien externe à s’ouvrir dans la ^
même page…
Comment je fais en HTML – simplissime SVP, je suis débutant !
=========
2 – HJe suis jaloux de votre calendrier à gauche du titre de l’article, comment peut on l’obtenir ?
Merci d’avance,
Didier
Bonjour
voila mon soucis :
Sur un forum en phpbb3 (donc a priori en W3C) j’ai un lien pour que les membres aillent voter sur weborama, alors pour éviter de remplacer la page du forum, j’ai mis votre code (onclick="window.open(this.href);return false") dans la balise <a>, on ouvre bien un nouvel onglet, mais à chaque fois que l’on clique on ouvre un nouvel onglet.
Auparavant sur un forum phpbb2 j’utilisais le target=_external afin de ne pas ouvrir de nouvel onglet à chaque fois
Question : Quel code mettre pour remplacer ce target=_external ?
Merci
je relève 2 erreurs, Country
– pour ouvrir une page dans un nouvel onglet … il faut un target= »_blank » !
– et XHTML1 transitionnel … ne valide pas cet attribut target !
je maintiens donc, au delà de la querelle des puristes, que la majorité des internautes n’étant pas encore très à l’aise avec les navigateurs (c’est un état de fait et d’expérience commune), ce n’est pas inutile de garder une solution de rechange « sous le coude » dans certains cas d’utilisation grand public. Comme c’est le cas de la plupart des sites marchands
Ou tu utilise un doctype XHTML 1.0 Transitional et tu pourra continuer à utiliser le fameux target="_blank"
De plus, l’argument comme quoi on va perdre un visiteur/client si on ouvre pas une nouvelle fenêtre est ridicule. L’utilisation de target est mauvaise parce qu’on prend le contrôle du navigateur du client sans lui demander son avis ! Peut être qu’il ne veut pas de nouvelle fenêtre, peut être qu’il veut un nouvel onglet ou je ne sais quoi d’autre. Donc laissez leur le choix, tout simplement.