target="_blank" en XHTML 1.0 Strict
Par M le samedi 24 février 2007, 08:13 - Technique - Lien permanent
J'ai voulu mettre un lien du style <a href="http://www.fabroce.net/blog/" target="_blank">Blog</a> dans une page XHTML 1.0 Strict.
Et bien ce n'est plus valide...
Ou plutôt ça ne l'a jamais été car historiquement (au temps d'HTML 4.x) le target= servait à indiquer un cadre dans lequel le lien devait s'ouvrir.
On avait le choix entre :
_self_top_parent_blank
Les 3 permiers ne sont que très rarement utilisés!
Maintenant, si on veut faire une page en suivant à la lettre les recommendations du W3C, on ne doit plus utiliser cette attribut, tous les liens doivent s'ouvrir dans la même fenêtre.
Utiliser target= était au final une mauvaise idée tout comme l'utilisation de frames car :
- On perd l'historique
- Le referer est perdu dans le cas de target="_blank"
- On ne doit pas imposer l'ouverture d'une nouvelle fenêtre à l'internaute
Bref, que des ennuis! Pour ceux qui veulent absolument simuler un target="_blank", un bout de javascript dans le lien peut faire l'affaire : onclick="window.open(this.href, '_blank'); return false;"
Ce code fait ouvrir une nouvelle fenêtre avec l'adresse du lien et retourne false pour qu'on ne suive pas le lien sur la fenêtre courante.
2 défauts à cette approche :
- Le Javascript n'est pas forcément actif
- Selon le navigateur, le lien peut déclencher une alerte de sécurité si le lien n'est pas sur le domaine courant.