Je suis en train de lire un document à propos de HTML5. Quelques lignes en bas de l'endroit où j'ai lié, un exemple d'arborescence DOM est affiché pour l'exemple de code HTML donné. Pourquoi n'y a-t-il pas de nœud de texte directement avant l'élément <head>
? Pourquoi n'y a-t-il aucun noeud de texte entre les noeuds DOCTYPE
et <html>
? Erreur ou fonctionnalité?Document de spécification: DOM texte Noeuds
Répondre
Feature. La principale raison est que, étant donné le balisage
<!DOCTYPE html>
<html>
<head>
<title>Sample page</title>
...,
certaines personnes attendent
document.documentElement.firstChild
retourner l'élément head
. Cependant, si le noeud de texte était inclus, c'est le noeud qui serait renvoyé.
(Notez aussi que la nouvelle ligne entre </body>
et </html>
se termine dans l'élément body
.)
Le nœud de texte avant la <head>
est probablement une omission. Vous ne disposez pas d'un nœud de texte avant l'élément racine car la plupart des analyseurs XML/HTML ne peuvent pas traiter les éléments situés en dehors du nœud racine. Ils les ignorent donc en silence. La même chose se produit si vous ajoutez un commentaire ou une instruction de traitement.
Je n'ai pas un exemple précis, mais j'imagine certains environnements sont assez « intelligents » à filtrer le texte "non pertinent", c'est-à-dire un espace blanc non significatif. Si un élément de texte ne contient que des espaces blancs insignifiants, il peut être légitime qu'une implémentation le supprime. En tant que développeur, je suis généralement reconnaissant quand cela arrive. –
De quelle manière pourrait le « CR » entre « » et «
» être plus ou moins importante que entre « » et « »? –Je suis d'accord avec Aaron. Alors que le CR entre et
est plutôt inutile pour moi, il est pas moins important que d'autres CR de. J'aime que mes environnements soient assez intelligents pour obéir exactement à la norme, si possible. En fait, je me souviens d'être très ennuyé par les différences de nœuds de texte entre IE et FF. Cela dit, j'ai posté un commentaire sur cette page à http://www.w3.org/Bugs/Public/show_bug.cgi?id=10136 pour clarification. Merci pour les réponses. – TNi- 1. Noeuds et éléments dans le DOM
- 2. le lien vers la dernière spécification DOM
- 3. Firefox Sidebar et objet Document de DOM
- 4. xpath avec le document dom
- 5. Problèmes de performance Javascript avec trop de noeuds dom?
- 6. Remplacement de javascript dom texte noeud
- 7. JavaScript: nœuds de texte DOM
- 8. XmlSlurper - lister le texte et les noeuds normaux du document xhtml
- 9. LaTeX: Spécification d'une police de document par défaut
- 10. Déterminer le document d'un élément DOM?
- 11. sélection de noeuds et manipulation hors du dom (Quel est le truc de jQuery?)
- 12. contentEditable sur les noeuds d'un document XML/composé?
- 13. C# Linq XML retirer des noeuds à partir du document
- 14. Linq lit un document XML avec des noeuds manquants
- 15. jQuery x y coordonnées de document de l'objet DOM
- 16. valeurs de texte Stockage dans la variable des noeuds précédents
- 17. Document, format texte
- 18. Document standard officiel pour la spécification HTTP Streaming
- 19. Spécification WS-Policy dans le document WSDL - .NET
- 20. Accès à un seul noeud de document DOM XML
- 21. Détermination de l'ordre des documents à partir des noeuds
- 22. Comment trouver des noeuds entièrement entre deux noeuds spécifiés
- 23. Ajout/suppression cyclique de noeuds DOM provoque des fuites de mémoire dans JavaScript?
- 24. Problèmes d'espace de noms XML DOM conflictuels
- 25. Charger un document html en javascript à partir du texte
- 26. Joindre un noeud avec une valeur null à un document DOM
- 27. php DOM, obtenir des valeurs du document xml, php xml
- 28. Extraction de texte d'un document PDF - C#
- 29. Document XML vers l'objet DOM en utilisant DocumentBuilderFactory
- 30. Convertir un nœud DOM ou Document en XML en JavaScript
J'aime beaucoup cette réponse, parce que vous avez également remarqué le CR supplémentaire après
. Je l'ai fait aussi, mais je ne savais pas quoi penser à ce moment-là. Donc, il pourrait absolument être une décision (sans papiers?) Faite pour des raisons héritées. En même temps, le groupe est prêt à apporter d'autres changements à la norme en rendant les choses moins confuses. Très étrange. Je vais laisser la question reposer un peu, juste pour que je puisse comprendre exactement ce qui se passe. Si vous êtes intéressé, je l'ai également demandé des éclaircissements à http://www.w3.org/Bugs/Public/show_bug.cgi?id=10136 – TNiL'éditeur est prêt à changer la spécification pour rendre les choses moins de confusion, mais uniquement si les pages Web ne reposent pas sur le comportement particulier et si les fournisseurs de navigateurs sont disposés à implémenter le changement. Ce n'était pas le cas ici. – Ms2ger