5568 sujets

Sémantique web et HTML

Bonjour,

Voici mon problème :

Lorsque je tape le code suivant dans ma page, elle est valide XHTML :

<div id="mon_div"><a href="http://www.alsacreations.com">lien</a></div>


Mais le lien (href) est calculé dynamiquement, à partir d'un Javascript, je suis donc obligé d'utiliser document.write() ou document.getElementById("mon_div").innerHTML pour écrire du contenu sur la page, et là, le validateur W3C me dit "document type does not allow element "a" here.".

Une idée ?

D'avance merci.
Modifié par kyf59 (19 Jun 2008 - 15:46)
<a> n'est pas un élément de sémantique textuelle mais un outil hypertexte. L'insérer entre deux balises (<h...>,<p>, etc.) ne lui fera pas de mal Smiley smile
Idem, dès que j'essaye d'intégrer une balise (même bien placée) via un Javascript, le document ne passe pas la validation.

J'ai également regardé du côté des marqueurs CDATA, ici la validation passe, mais le texte ne s'affiche pas dans la page Smiley smile .

Merci pour ton aide.

Franck.
De toute manière, le validateur n'a que faire du code produit par le javascript. Lui, il ne "voit" que le code HTML initial de la page, ainsi que le javascript qui y figure.

Le problème vient donc peut-être du code HTML qui entoure, ou qui permet d'inclure ton javascript. Peux-tu nous donner un exemple de code qui pose un problème?
J'ai la soluce, tu n'étais pas très loin.

En fait, le script était "inline", donc "vu" par le parseur XHTML.

Je l'ai placé dans un fichier externe (dans une fonction insertText() qui contient donc le document.write() ) et j'ai donc simplement ajouté le code suivant dans mon HTML :

.... code HTML ....
<li>
<script language="javascript" type="text/javascript">insertText()</script>
</li>
.... code HTML ....

Merci encore pour ton aide.

++
Gilles a écrit :
De toute manière, le validateur n'a que faire du code produit par le javascript. Lui, il ne "voit" que le code HTML initial de la page
Ce qui est d'ailleurs une belle erreur…
Benjamin D.C. a écrit :
Ce qui est d'ailleurs une belle erreur…


Oui. Pour contourner ça, avec la Web Developer Toolbar je regarde le "code source généré", puis je le copie/colle dans le champ de saisie directe du code du validateur. Ce n'est pas parfait (il ne faut pas prendre au pied de la lettre le résultat de la validation, car je soupçonne la toolbar d'ajouter du code en douce...), mais au moins ça permet de dégrossir le travail.
Gilles a écrit :


Oui. Pour contourner ça, avec la Web Developer Toolbar je regarde le "code source généré", puis je le copie/colle dans le champ de saisie directe du code du validateur. Ce n'est pas parfait (il ne faut pas prendre au pied de la lettre le résultat de la validation, car je soupçonne la toolbar d'ajouter du code en douce...), mais au moins ça permet de dégrossir le travail.

Oui c'est à peu près ce que je fais également, mais cela implique de rajouter manuellement une DTD etc. Bref, pas glop. Smiley ohwell