5568 sujets

Sémantique web et HTML

Bonjour à tous.

Voici mon premier post sur votre forum.

J'éprouve une difficulté pour valider un site en cours de construction.
Le site est basé sur Joomla et la validation est Ok pour un site par défaut.

Par contre, dès que l'on s'attaque à certains composants qui incluent des styles ou des scripts dans le body, joomla oblige, on est très loin du compte.

J'ai réussit à régler la majorité des erreurs de validation, par contre, certaines d'entre elles sont incompréhensibles.

Voici un exemple de code pour lequel je ne comprend pas l'erreur w3c, car il s'agit de javascript qui contient dans des variables du code html.


<script language="javascript" type="text/javascript">
loadStyleTextHead( new String("<style type='text/css'>.style_periode_libre{color:#000;background-color:#99FF00;}.style_periode_attente{color:#000;background-color:#FFCC33;}.style_periode_occupe{color:#000;background-color:#FF0000;}</style>").replace("</style>", "").replace("<style type='text/css'>", "") );
</script>


Quelqu'un pourrait-il me dire pourquoi ce bout de code ne passe pas la validation. Voici l'erreur remontée :

document type does not allow element "style" here . 



Un grand Merci d'avance.

Alexandre
Bonjour,

Eh bien si tu lis ton code tu as bien un élément STYLE ouvert au beau milieu de ton script. Voir la FAQ du forum sur la bonne manière intégrer du code JavaScript dans une page de manière valide.
Bonjour

Effectivement, la balise STYLE est ouverte dans le script, mais dans une chaine de caractères.

De plus l'inclusion du script en elle même est correcte.

C'est l'appel de la fonction, et surtout son paramètre qui semble posé problème.

Peut être je me trompe?

Merci

Alexandre
Non, c'est dans le body.

J'ai maté la FAQ, et je me suis rendu compte que je n'insérai jamais de la bonne manière mes scripts.

Il faut mettre les commentaires html autour du code js.

Cela a résolu une bonne partie de mes erreurs.

Je creuse pour celles qui subsistent.

Merci à Florent.
pellet.alexandre a écrit :
Effectivement, la balise STYLE est ouverte dans le script, mais dans une chaine de caractères.

Certes. Mais comparons:
1.
<script> Bla bla du texte <style> bla bla </style> etc. </script>

2.
<p> Bla bla du texte <strong> bla bla </strong> etc. </p>

Que le bla bla soit du code JavaScript avec des parenthèses et des single quotes ou double quotes n'y change pas grand chose, l'analyse est la même. Donc:
- ne pas placer de balises HTML dans le code JS à l'intérieur des pages;
- ou bien commenter l'ensemble du code avec un commentaire HTML (comme le suggère la FAQ).