les attribut target et onclick pour lien externe: que choisir?

Mammouth du PHP | 843 Messages

11 mars 2008, 17:09

salut à tous :)

j'ai un doute sur une formulation de lien pour être valid XHTML et ne pas utiliser une syntaxe qui est ou deviendrait dépressiée... :-k

Syntaxe 1:

Code : Tout sélectionner

<a href="http://www.phpfrance.com" target="_blank" title="PHP France">un tres bon site</a>
Syntaxe 2:

Code : Tout sélectionner

<a href="http://www.phpfrance.com" onclick="this.target='_blank'" title="PHP France">un tres bon site</a>
laquel choisir ?

merci d'avance pour vos réponses ;)
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

Eléphant du PHP | 445 Messages

11 mars 2008, 17:18

Moi j'utilise cela (valide XHTML 1.0 Strict) :

Code : Tout sélectionner

<a href="http://www.phpfrance.com" onclick="window.open(this.href, '_blank');" title="PHP France">un tres bon site</a>

ViPHP
AB
ViPHP | 5818 Messages

11 mars 2008, 17:44

La syntaxe 1 sera valide xhtml transitionnel et non pas strict (cela dit ce n'est pas un drame).

La syntaxe 2, jamais vue.


La syntaxe d' h0_noMan comprend quelques approximations. Tel quel ce code devrait ouvrir deux fenêtres et par ailleurs comme on utilise window.open c'est inutile de spécifier _blank
Donc cela devrait donner quelque chose comme :

Code : Tout sélectionner

<a href="http://www.phpfrance.com" onclick="window.open(this.href); return false" title="PHP France">un tres bon site</a>
Cette syntaxe est valide XHTML stricte mais si le visiteur a désactivé js le lien s'ouvrira dans la même fenêtre (ce qui n'est pas non plus).

Donc à toi de choisir entre ta syntaxe 1 et celle de h0_noMan

Eléphant du PHP | 445 Messages

11 mars 2008, 17:58

La syntaxe d' h0_noMan comprend quelques approximations. Tel quel ce code devrait ouvrir deux fenêtres et par ailleurs comme on utilise window.open c'est inutile de spécifier _blank
Donc cela devrait donner quelque chose comme :

Code : Tout sélectionner

<a href="http://www.phpfrance.com" onclick="window.open(this.href); return false" title="PHP France">un tres bon site</a>
Exact.
Désolé je nais pas fait assez attention en collant le code.

Mais le mieux est de ne pas mettre de target afin de laisser à l'utilisateur le choix de quitter ton site et d'aller sur le lien ou de l'ouvrir dans une nouvelle fenetre/onglet

ViPHP
AB
ViPHP | 5818 Messages

11 mars 2008, 18:38

...

Mais le mieux est de ne pas mettre de target afin de laisser à l'utilisateur le choix de quitter ton site et d'aller sur le lien ou de l'ouvrir dans une nouvelle fenetre/onglet
Exact également :wink: C'est cette syntaxe que j'utilise toujours

Mammouth du PHP | 843 Messages

11 mars 2008, 23:06

Ps. la syntaxe 2 fonctionne très bien (même comportement que la 1) et est celle fournis par mon hebergeur chez celeonet.... (on a d'ailleurs un modo sur ce forum qui travail avec eux)

si quelqu'un ce sent d'apporter de plus ample information sur cette syntaxe 2 ;)
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

ViPHP
AB
ViPHP | 5818 Messages

12 mars 2008, 01:29

Pas tout à fait le même comportement que la 1 car avec la 1 le visiteur ne peux pas choisir d'ouvrir le lien dans la même fenêtre et le code ne sera pas valide strict.

Alors qu'avec la 2 c'est le même fonctionnement qu'avec la solution qu'on t'a donné.
En y regardant un quart de seconde de plus elle est très bien cette seconde solution. Je n'avais pas regardé car j'utilisais plutôt la dernière par habitude mais cette solution est même plus logique.

Les deux dernières solutions passent le validateur strict mais aucune des deux n'est réellement dans l'esprit XHTML strict mais bon ... y'a plus important à optimiser (à moins d'être psycho rigide ou d'avoir neuf vies devant soi...)

ViPHP
ViPHP | 3607 Messages

12 mars 2008, 13:58

Et pourquoi pas afficher les deux choix à l'utilisateur?
Tu affiche une petite icone qui veut dire "ouvrir une nouvelle fenêtre" et qui a un attribut target ou du javascript et ensuite tu affiche le lien qui reste sur le même page, comme ça on a le choix...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

12 mars 2008, 14:00

J'ai vu une erreur énorme dans les 2 liens :
<a href="http://www.phpfrance.com" target="_blank" title="PHP France">un excellent site</a>
/me suis déjà dehors ==> [] :lol:
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 843 Messages

12 mars 2008, 16:36

mille excuse pour ce lien on ne peut plus que modeste :lol:

sinon je vais opter pour la seconde syntaxe fournis par l'hebergeur car elle colle bien avec ma politique de gestion de mes liens externes... ;)

merci à tous :)
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

ViPHP
AB
ViPHP | 5818 Messages

13 mars 2008, 17:02

Et pourquoi pas afficher les deux choix à l'utilisateur?
Tu affiche une petite icone qui veut dire "ouvrir une nouvelle fenêtre" et qui a un attribut target ou du javascript et ensuite tu affiche le lien qui reste sur le même page, comme ça on a le choix...
Oui mais ça fait deux fois le même lien à afficher. Niveau ergonomie...
L'avantage des deux dernières solutions c'est que le visiteur a le choix, en faisant un click droit sur le lien, de choisir la destination d'ouverture du lien. Et avec un click gauche on a l'effet voulu par le webmestre. Un bon compromis à mon avis.

Mammouth du PHP | 843 Messages

18 mars 2008, 14:21

j'ai donc inseré la syntaxe suivante mais j'aimerai garder le focus sur mon onglet plutot que de passer sur mon onglet ou fenetre en court... :-k

Code : Tout sélectionner

<a href="http://www.phpfrance.com" onclick="this.target='_blank'" title="PHP France">un tres bon site</a>
merci d'avance de votre aide :)
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non: