XHTML : target="_blank" devient onclick="window.open(...)",oui mais... - HTML/CSS - Programmation
Marsh Posté le 12-04-2006 à 10:38:50
La propriété "Target" est une façon d'imposer une navigation aux visiteurs. Elle n'est plus acceptée par le W3C dans les versions strictes de HTML et XHTML.
Plusieurs solutions :
1- utiliser un équivalent en javascript (mais l'esprit reste le même, cela force le comportement de l'utilisateur) :
onclick="window.open(this.href); return false;"
2- choisir, comme le recommande le W3C dans ce cas, un doctype transitionnel.
Voici son avis sur la question : http://www.w3.org/MarkUp/2004/xhtml-faq#target
3- laisser libre le visiteur et ne pas imposer de nouvelle fenêtre. C'est sans aucun doute le meilleur choix à faire.
4- indiquer clairement au visiteur que le lien va s'ouvrir dans une nouvelle fenêtre (image, indication, infobulle, etc.)
A lire :
- Liens vers une nouvelle fenêtre : http://www.cybercodeur.net/weblog/ [...] 041030.php
http://css.alsacreations.com/Tutor [...] le-fenetre
- Une très bonne synthèse pratique : http://www.ultra-fluide.com/ressou [...] target.htm
- Discussion sur Target blank : http://www.publishtogether.com/pompeurs/TargetBlank
ALLER PLUS LOIN :
"target" va contre la philosophie de laisser le visiteur libre de sa navigation.
Soit on adhère à cette philosophie, soit on n'y adhère pas. Toute la question est là
et les réponses en découlent très logiquement :
- Si on y adhère, on refuse d'employer target (ou toute autre bidouille javascript équivalente)
- Si on n'y adhère pas, le W3C a la réponse : "If you want to use the target attribute, use XHTML 1.0 transitional." (solution 2)
Marsh Posté le 12-04-2006 à 10:46:06
bon et bien moi en ce qui me concerne, j'y adhere pas spécialement... ou tout du moins j'aime bien etre prévenu à la limite... mais c quand même bien pratique cette fonction ! quand on est sur un site, qui propose une rubrique de liens, j'aime bien pouvoir avoir acces à la liste de liens sans etre obligé de retourner sur le site... (exemple : google, quand on a une liste de liens, c bien de pouvoir "zapper" d'un site à l'autre)
En ce qui concerne mon probleme, sur le site actuel les target servent pour les partenaires ou je ne sais quoi, et sont visiblement indispensables, va falloir discutailler "doctype" avec la direction, en tous cas ça me fait chier d'etre obligé de redescendre d'un niveau simplement à cause d'un foutu target !
Marsh Posté le 12-04-2006 à 10:49:01
freed102 a écrit : en tous cas ça me fait chier d'etre obligé de redescendre d'un niveau simplement à cause d'un foutu target ! |
Il n'y a pas de notion de niveau dans les doctypes : chaque doctype est normé et valide. Rien n'oblige les gens à choisir le doctype le plus strict. Ça dépend justement de leurs besoins.
Tu as besoin d'un target ? dans ce cas la réponse est simple et c'est le W3C qui te la donne : "If you want to use the target attribute, use XHTML 1.0 transitional."
Marsh Posté le 12-04-2006 à 10:57:02
yes merci... mais ce qui me fait chier c que là je m'enquiquine à faire du strict depuis trois jours lol !
sinon concernant le onclick="window.open(...)", est ce que ça va forcement etre bloqué sur IE SP2 (par défaut) ? (je peux pas tester là j'ai pas de windows XP sous la main)
Marsh Posté le 12-04-2006 à 11:01:05
freed102 a écrit : sinon concernant le onclick="window.open(...)", est ce que ça va forcement etre bloqué sur IE SP2 (par défaut) ? (je peux pas tester là j'ai pas de windows XP sous la main) |
Pourquoi faire du onclick alors que tu peux utiliser target ?
Si tu veux avoir une nouvelle fenêtre, autant employer les moyens qui ont été conçus pour ça.
De toute façon, il existe tellement d'anti-popups (personnellement, mon navigateur Firefox fait anti-popup, j'ai une extension anti-pub et popups, et mon firewall Kerio fait anti-popups également) que tu auras toujours des problèmes avec ces techniques de onclick.
Marsh Posté le 12-04-2006 à 11:04:52
bon bon... je vais donc proposer de passer en transitional si ces targets sont vraiment indispensables, enfin jusqu'à present j'ai vu que des target="_self" ça sert strictement à rien ça !
Marsh Posté le 23-04-2008 à 19:41:23
freed102 a écrit : bon bon... je vais donc proposer de passer en transitional si ces targets sont vraiment indispensables, enfin jusqu'à present j'ai vu que des target="_self" ça sert strictement à rien ça ! |
Ben si tu veux rester en strict, tu peux utiliser <a onclick="window.open('ton_lien')">
Marsh Posté le 24-04-2008 à 09:23:00
Joli déterrage... Et souvenir quand Sibelius squattait par ici
Marsh Posté le 12-04-2006 à 10:08:19
Ne vous inquietez pas je vais pas vous reposer la question "bah oui mais comment qu'on fait pour faire un target si c'est pas valide W3C ??" ... la réponse je la connais c'est un javascript window.open("_blank', this.href) ou quelquechose comme ça... soit !!!!
... le probleme qui nous vient à l'esprit... c'est comment on fait avec IE sur XP et son popup blocker ?
des astuces à me conseiller ?
je ch des trucs sur gougeul... mais je trouve que des trucs en anglish et c pas tip top
PS: ya une propriété en CSS3 .. target.. mais je sais pas si ça va m'aider pour ça ? et puis CSS3 est ce que c conseillé ?
Message édité par freed102 le 12-04-2006 à 10:10:04