target blank et (X)HTML Strict

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : target blank et (X)HTML Strict

W3C et JavaScript pour target='_blank'

par Lareine » 26 oct. 2005, 16:03

Heureusement JavaScript nous sauve le coup avec:
onclick="this.target='_blank'" [-o< ...
Jusqu'à ce que le javascript soit désactivé sur le navigateur
du client... :?

Même dans ce cas, le lien fonctionne toujours, ce qui
reste l'essentiel :wink: !
Exactement, c'est le but : que le visiteur puisse surfer sur le site,
nouvelle fenêtre ou pas...
J'irais même plus loin en disant que cette solution reste la plus
conforme
aux recommandations du W3C pour l'accès des
malvoyants
. Puisque d'après ce que j'ai lue, ceux-ci désactivent
par défaut JavaScript
, justement pour éviter l'ouvertures de
nouvelles fenêtres risquant de leur faire perdre l'historique de
leurs navigations 8) !

Par exemple, pour mon site, JavaScript me permet d'ajouter
des fonctions et des effets gratifiant sur le plan visuel lors de
la navigation. Choses qui ne profiteront de toute façon qu'aux
voyants qui n'on généralement aucune raison de désactiver
JavaScript.

La boucle et bouclé et tout le monde est content =D> !

Ceux qui ne veulent pas utiliser un fichier externe, pour des
raisons de simplicité ou de compatibilité avec les navigateurs
ne prenant pas en charge les fichier *.js, préférerons donc
camoufler la balise target='_blank' dans un évènement
JavaScript de type onclick="this.*".

onclick="this.target='_blank'" reste donc la solution la plus
Compatible et Universel :P !

rel="external" et (X)HTML Strict

par Lareine » 26 oct. 2005, 15:40

Pour compléter, soulignons que ce script dois être mis en externe
dans un fichier *.js pour être validé en (X)HTML Strict :wink: !

par seayoung » 26 oct. 2005, 15:34

ouf heureusement que tu es là j'avais oublier de documenter ca ...
:oops:

Merci pour ce complément d'info :wink:

rel="external" à la place de target="_blank''

par Lareine » 26 oct. 2005, 15:26

rel="external" est une solution valide, mais nonstandard.
http://www.sitepoint.com/article/standa ... iant-world
rel = types-de-lien
Cet attribut décrit la relation partant du document courant vers
l'ancre spécifiée par l'attribut href. La valeur de cet attribut est
une liste de types de lien séparés par des espaces.
external n'étant pas une propriété définie dans les specifications
http://www.laltruiste.com/document.php? ... aison.html
HTML 4.01, l'élément head du document doit avoir un attribut
profile, indiquant l'adresse d'un profile meta data profiles,

Code : Tout sélectionner

Les auteurs peuvent souhaiter définir des types de liens supplémentaires qui ne sont pas décrits dans cette spécification. Le cas échéant, ils devraient utiliser un profil pour citer les conventions employées pour définir les types de lien. <HEAD profile="http://www.bidule.com/profils/base">
http://www.la-grange.net/w3c/html4.01/s ... l#profiles
un fichier séparé qui définit un ou plusieurs comportements de
propriétés de métadonnées.
http://www.la-grange.net/w3c/html4.01/s ... #LinkTypes
Ne faisant pas partie de la norme, cette solution est très mal
documentée
, et quand rel="external" est utilisé tel quel, la
fonction est évidement inactif
.
La plupart des webmaster ne maitrisant pas l'utilisation des
métadonées d'entête, font donc appele à un script en JavaScript
pour générer la fonction rel="external":

Code : Tout sélectionner

function externalLinks() { if (!document.getElementsByTagName) return; var anchors = document.getElementsByTagName("a"); for (var i=0; i<anchors.length; i++) { var anchor = anchors[i]; if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external") anchor.target = "_blank"; } } window.onload = externalLinks;
Cela évite l'utilisation répéter de l'évènements JavaScript,
onclick="this.* "dans les pages. Mais du coup on doit utiliser
un script JavaScript un peu compliqué, en entête ou en fichier
externe
:? ...
Mais le résultat de fonctionement reste le même et vous pouvez
éventuellement créer une valeur autre pour external comme
externe ou newpage en la modifiant dans le script :) !

par seayoung » 24 oct. 2005, 17:41

J'ai refais l'essais avec Internet Explorer, Firefox et Opera, cela
ne pose aucun soucis de validité pour le W3C en ce qui concerne
le XHTML Strict, mais rel="external" semble bien inactif.

Il n'ouvre aucune nouvelle fenêtre dans IE et Firefox, ni aucun
nouvel onglet dans Opera ou Maxthon. Et pourtant j'ai bien
utilisée une adresse complète comme dans ton exemple :? ...

Code : Tout sélectionner

<a href="http://www.adresse-site.org" rel="external">
je suis très surpris là .... ton code semble OK enfin identique au mien ...

par mere-teresa » 24 oct. 2005, 17:35

Heureusement JavaScript nous sauve le coup avec:
onclick="this.target='_blank'" [-o< ...
Jusqu'à ce que le javascript soit désactivé sur le navigateur du client...
:?
Même dans ce cas, le lien fonctionne toujours, ce qui reste l'essentiel :wink: !
Exactement, c'est le but : que le visiteur puisse surfer sur le site, nouvelle fenêtre ou pas...

par Lareine » 24 oct. 2005, 17:17

J'ai refais l'essais avec Internet Explorer, Firefox et Opera, cela
ne pose aucun soucis de validité pour le W3C en ce qui concerne
le XHTML Strict, mais rel="external" semble bien inactif.

Il n'ouvre aucune nouvelle fenêtre dans IE et Firefox, ni aucun
nouvel onglet dans Opera ou Maxthon. Et pourtant j'ai bien
utilisée une adresse complète comme dans ton exemple :? ...

Code : Tout sélectionner

<a href="http://www.adresse-site.org" rel="external">

par seayoung » 24 oct. 2005, 16:36

en est tu sure ?
car je le fais sur mes page et elles sont valides (XHTML 1.0 strict).... :shock:
Tu l'as lu où ?
car le problème que tu pose est un problème que j'avais déja soulevé il y a qq temps et je cherchais une parade et dans un premier temps je me suis rabatu sur ta solution. puis j ai découvert cette balise ... que j'utilise maintenant alors si tu me dit que ce n'est pas valide .... faut que je revienne a mon ancienne version. :cry:

par Lareine » 24 oct. 2005, 15:59

Heureusement JavaScript nous sauve le coup avec:
onclick="this.target='_blank'" [-o< ...
Jusqu'à ce que le javascript soit désactivé sur le navigateur du client...
:?
Même dans ce cas, le lien fonctionne toujours, ce qui reste l'essentiel :wink: !
Je lis avec beacoup d'attention tout ce sujet et lareine (j'ai l'impression
que ca deviens une habitude fort agréable) a un point de vue très
intéressant que je partage quasiment entièrement.
Mais a tout ca j ai découvert qu'il y a une solution tierce, je ne sais
pas si vous la connaissait (surement que oui), qui consiste a utiliser :
rel="external"

Cetependant le problème de cette méthode, qui il me semble reconnu
par la w3c, et qu'il faut utiliser toute l'url pour le lien soit :
<a href="http://www.monsite2.com">

mais il me semble que c'est une parade sympatique car normalement
les liens que l'on utilise pour ce genre de chose sont principalement
des liens vers d'autre site.
J'ai bien dit PRINCIPALEMENT :wink: car je me doute qu il y a d autre
utilisation possible

:roll:
Solution très intéressante, mais malheureusement rel="external" ne
fonctionne pas en XHTML Strict :o !

par seayoung » 24 oct. 2005, 15:16

Je lis avec beacoup d'attention tout ce sujet et lareine (j'ai l'impression que ca deviens une habitude fort agréable) a un point de vue très intéressant que je partage quasiment entièrement.
Mais a tout ca j ai découvert qu'il y a une solution tierce, je ne sais pas si vous la connaissait (surement que oui), qui consiste a utiliser : rel="external"

Cetependant le problème de cette méthode, qui il me semble reconnu par la w3c, et qu'il faut utiliser toute l'url pour le lien soit :
<a href="http://www.monsite2.com">

mais il me semble que c'est une parade sympatique car normalement les liens que l'on utilise pour ce genre de chose sont principalement des liens vers d'autre site.
J'ai bien dit PRINCIPALEMENT :wink: car je me doute qu il y a d autre utilisation possible


:roll:

par albat » 24 oct. 2005, 13:58

Heureusement JavaScript nous sauve le coup avec: onclick="this.target='_blank'" [-o< ...
Jusqu'à ce que le javascript soit désactivé sur le navigateur du client... :?

par Lareine » 24 oct. 2005, 12:55

C'est un bon point de vue, Lareine.
J'avais mis ce lien pour que tu puisses faire ton opinion :)
Et tu y es parfaitement parvenue, merci :) ...

Mon opinion et qu'il faut encourager l'utilisation du (X)HTML Strict,
comme c'est le standard du futur :o .

La dépréciation de la balise target blank est une bêtise sans nom,
puisqu'elle encourage le webmaster qui en a besoin à régresser en
(X)HTML Transitional, s'il veut que ses pages soient valide :-s .

Heureusement JavaScript nous sauve le coup avec:
onclick="this.target='_blank'" [-o< ...

par mere-teresa » 24 oct. 2005, 12:08

C'est un bon point de vue, Lareine. J'avais mis ce lien pour que tu puisses faire ton opinion :)

par Lareine » 24 oct. 2005, 12:03

Pour trouver une info, deux possibilités : :google: ou Mère Teresa. :langue:
Moi, j'ai choisi Mère Teresa. C'est toujours rapide et très pertinent. :agenouille:
Merci !
Le W3C à quand même un double langage au sujet des target :langue: :langue: !
D'un coté il tente de forcer l'abandon de target blank en (X)HTML Strict
en faisant culpabiliser les webmasters qui l'utilise sous prétexte que c'est
mal d'ouvrir une nouvelle fenêtre pour un autre site [-X !
D'un autre coté, il prévoit l'utilisation du target dans un nouvel onglet
avec CSS3, alors que la majorité des navigateurs supporte déjà diffi-
cilement le CSS2 comme le fait remarquer si judicieusement Cyrano.
Et oui le W3C ne proposent aucune solution actuelle si l’on veut utiliser
une DTD strict, mais ils ont quand même pensée à nous dans le futur
grâce à CSS3. Voici à quoi cela va ressembler

The 'target-new' property determines what new target destination
(if any) is created.

Name: target-new
Value: window | tab | none
Initial: window
Applies to: hyperlinks
Au lieu de vouloir imposer de force la façon de naviguer autant aux
webmasters qu'au utilisateurs comme le fait le W3C dans ses reco-
mmandations
et dans ses validations (X)HTML Strict. Pourquoi ne
pas plutôt laisser chaque utilisateur régler le comportement de son
navigateur selon ses préférences de navigation
:) ???
Soit, ouverture des liens externes dans une nouvelle fenêtre, comme
le font Internet Explorer et Firefox. Soit ouverture automatique dans
de nouvelles Onglets, comme le font déjà par défaut des navigateurs
comme Opera ou Maxthon \:D/ .

Dans pas mal de cas il est plus souple de pouvoir ouvrir ses pages
dans deux fenêtres différentes pour les avoirs en même temps sous
les yeux et dans d'autres cas les onglets s'imposent :o !

Pour moi pas de soucis j'utilise: onclick="this.target='_blank'" et je
peut ainsi garder mes liens externes pour les sites externes tout en
gardant la validation XHTML Strict :pouce:

Et tant pis pour les Puristes ou les Ayatollahs du W3C inutile d'être
plus royaliste que le roi, comme dans le lien de mere-teresa ou l'au-
teurs qui s'érige en donneur de leçons, se fend d'un Javascript de
10km à la compatibilité quelque peut limité :wink:

par mere-teresa » 24 oct. 2005, 11:11

Moi, j'ai choisi Mère Teresa. C'est toujours rapide et très pertinent.Merci !
Merci :wink:
Je devrais peut-être utiliser mes capacités cervicales à autre chose que stocker ces liens sans intérêt, c'est que je me dis parfois.