2008-12-13 6 views
13

Le validateur de W3c ne m'a pas parlé de ça, mais j'étais curieux de savoir si quelqu'un d'autre avait une opinion sur la façon de placer des commentaires html en dehors des tags html?Est-il autorisé de mettre des commentaires html en dehors des balises <html>?

 
... 
</body> 
</html> 
<!-- byee --> 

J'ai une application et des données suis fournir en sortie et veulent que ce soit la dernière chose absolue qui est fait, ce qui signifie que, malheureusement, je l'ai déjà attaché mon dernier </html >.

Répondre

1

Tout client devrait complètement ignorer les commentaires, ils ne devraient donc pas causer de problèmes. De toute façon, si le validateur ne s'est pas plaint, c'est probablement correct.

17

Je ne vois pas cela comme un problème - les commentaires autorisés ne sont pas spécifiés dans une DTD (car ils sont efficaces pour les humains, pas pour les ordinateurs). En outre, l'API DOM (http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html) autorise explicitement de nombreux commentaires directement sous le nœud de document (c'est-à-dire pas l'élément HTML racine, la racine de document logique), de sorte que tout navigateur conforme doit l'autoriser. Cela ne veut pas dire que vous ne trouverez pas de navigateurs ou d'outils, en particulier les plus anciens, qui s'étouffent. Mais je serais surpris s'il y en avait beaucoup.

+1

Je n'ai vu aucun navigateur se plaindre à ce sujet. Juste pour le plaisir que j'ai testé dans l'ancienne Mosaic 2.1.1 (à partir de 1996 !!) et même ce très vieux navigateur ne se plaignait pas. – some

13

Je ne pense pas un commentaire après la </html > causera des problèmes, mais je crois qu'un commentaire qui précède la déclaration DOCTYPE (et donc avant la < balise html >) donnera le coup d'IE6 en mode quirks.

+2

Cela affecte en fait plus que IE6. longue discussion ici sur pourquoi w3 ne rendra pas ce code HTML invalide: http://www.w3.org/Bugs/Public/show_bug.cgi?id=12072 – benrifkah

-1

Oui par tous les moyens. Tout moteur de rendu (IE, Firefix, Opera, Safari, etc.) ignorera complètement toute balise de commentaire HTML, quelle que soit sa position.

+0

Ceci n'est pas techniquement vrai car IE analyse les commentaires pour les instructions conditionnelles. Voir: "http://msdn.microsoft.com/fr-fr/library/ms537512(VS.85).aspx –

0

J'ai demandé à une société de référencement qui travaillait sur le site d'un client d'ajouter un commentaire HTML dans un de mes fichiers PHP qui se trouvait en dehors de la balise HTML et qui a causé des problèmes dans Internet Explorer. Il a causé un tas de problèmes de formatage avec mes menus déroulants. Cela n'a aucun sens pourquoi il a cassé, mais il était absolument 100% causé par le commentaire. Dès que le commentaire a été supprimé, tout est revenu à la normale.

+0

A moins que vous ne puissiez présenter une démonstration, la description doit être considérée comme une fausse alarme, le problème a été causé par quelque chose d'autre (comme une erreur dans la syntaxe de commentaire, facile à faire) –

+0

@Eric, Quelle version de IE était-ce? – Pacerier

+0

Je pense que c'est une information utile mais est peut-être plus approprié comme un commentaire qu'une réponse – RobD

1

Pour votre information, si vous utilisez AngularJS et créer un .directivereplace est vrai, un commentaire en dehors de l'élément racine dans le fragment HTML causeront angulaire de voir deux éléments racine et jeter cette erreur

Template for directive 'yourDirective' must have exactly one root element.

Questions connexes