8791 sujets

Développement web côté serveur, CMS

Comment respecter les standards, lorsque les navigateurs les ignorent ?
Merci de lancer le code suivant sur le navigateur de votre choix et, le cas échéant, de nous faire part de la conformité du code produit par simple lecture du code inclus dans la page correspondante.

Le code
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
  <head>
    <title>Votre titre</title>
    <meta http-equiv="Content-Type" content="text/HTML; charset=iso-8859-1" />
<script type="text/javascript">
function init(){
alert(document.getElementById('pge').innerHTML);
}
onload=init;
</script>
</head>
<body>
    <div id="pge"><p>De l'utilité d'un code conforme...<br />
	 Voilà ce que devient une simple liste :</p>
	 <ul>
    	<li>un lapin</li>
    	<li>un perroquet</li>
    	<li>un lion rugissant</li>
    	<li>et un raton laveur</li>
    </ul></div>
  </body>
</html>
Mes hommages du soir

This Page Is Valid XHTML 1.0 Strict!

Mais je n'ai pas trouvé de navigateurs produisant un code valide en lisant simplement le code inclus !

A bientôt donc
Julien de Prabere a écrit :
Mais je n'ai pas trouvé de navigateurs produisant un code valide en lisant simplement le code inclus !

Attention, tes explications ne sont pas très claires et peuvent prêter à confusion.

Le problème, c'est que le code HTML tel que récupéré en Javascript par innerHTML est modifié?
Pour ma part j'ai constaté ceci:
- Firefox: <br /> en <br>;
- Opera, Konqueror: <br /> en <br>, balises en majuscules;
- IE6: <br /> en <br>, balises en majuscules, certains </li> qui sautent.

Mais la question que je me pose, c'est: et alors? Je veux dire, concrètement, quel est le problème posé? Tu dois récupérer ce code pour l'insérer quelque part?
Et alors, il est bien difficile de construire des pages dynamiques, utilisant par exemple Ajax, restant conformes aux standards du W3C !
bonsoir ,

Ben au départ innerHTML ne fait pas partie de la specification DOM W3C ... alors !!! Smiley cligne

Je ne suis sûr que vouloir "etre conforme aux Standards dans l'absolu" soit vraiment nécessaire sauf en cas de quête du grâle ...

Si tu veux vraiment etre conforme n'utilise pas innerHTML et passe par les méthodes spécifiques DOM manipulant les noeuds !
Merci pour ces précisions, mais quelques indications complémentaires me seraient fort utiles pour récupérer du code HTML avec les méthodes spécifiques du DOM manipulant les noeuds…

A vrai dire, j’ai fait ces constations après avoir mis au point un mini-blog puis, un site amendables en ligne à partir de l’exemple donné pour l’édition d’un paragraphe par Peter-Paul Koch dans Quirkmode.

L’utilisation conjuguée du PHP, des fichiers textes et d’outils tels que JQuery permettent maintenant de construire un formulaire à la volée et d'autoriser ainsi un rédacteur dûment identifié à créer ou à reprendre, à l'aide d'un simple clic, les contenus d’un billet ou même d’un article de structure donnée. Les titre, sous-titre ou chapeau et corps du texte apparaissent alors dans des balises input ou textarea pour les publier après les avoir amendés en utilisant, si nécessaire, quelques boutons de mises en forme (graissage, soulignement, liste à points…) ou d’insertion de liens et même de chargement d’images…

Constatant que les pages ainsi produites n’étaient plus conformes, malgré toute l’attention portée à la conformité du code, j’ai du me résigner utiliser des balises input masquées pour pouvoir recourir à leurs valeurs tant pour l’affichage des contenus que pour leur transfert dans la fenêtre d’édition. Bien que cette solution apporte quelque souplesse au niveau des menus, les méthodes précitées me seraient fort utiles pour ne pas alourdir inutilement des pages dynamiques plus légères que celles de bien des solutions toutes faites disponibles sur la toile...