2010-11-18 41 views
8

Je suis curieux de savoir s'il existe un moyen de créer des nœuds DocType via W3C DOM? La spécification indique explicitement qu'ils sont en lecture seule et ne peuvent pas être modifiés, mais peuvent-ils être créés?Le DOM W3C peut-il être utilisé pour créer des nœuds Document/DocType?

http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-412266927

L'interface de document ne semble pas avoir de méthode create pour elle:

http://www.w3.org/TR/DOM-Level-3-Core/core.html#i-Document

la question plus large est peut-être: un peut tout nouveau document HTML être construit par programme via DOM? Je sais document.createDocumentFragment() mais je veux dire l'équivalent d'un document HTML racine avec doctype spécifique, etc.


Mise à jour: il ressemble à Gecko récente et WebKit mettre en œuvre DOMImplementation.createDocument et DOMImplementation.createDocumentType mais pas IE8 ou avant (havre de paix » t vérifié IE9). Donc, malheureusement, je suis toujours coincé là-bas.

Je suis également un peu incertain de ce que je peux faire avec cette nouvelle instance de Document une fois que je l'ai. Toutes les méthodes DOM actuelles se détachent de l'objet document global, il ne semble donc pas possible de l'échanger avec un nouveau.

Répondre

1

Vous avez besoin d'un objet DOMImplementation. Voir la section Bootstrapping.

+0

Je ne vois pas comment cela répond à ma question. L'objet 'DOMImplementation' apparaît pour vous permettre d'interroger les modules DOM pris en charge. Pouvez-vous être plus précis sur la façon dont on pourrait utiliser cela pour créer de nouvelles instances de ces nœuds? – mckamey

+0

DOMImplementation (http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-102161490) possède des méthodes createDocument et createDocumentType. – Alohci

+0

Ah d'accord, il semble que vous puissiez obtenir un de ces objets à partir de 'document.implementation'. Pouvez-vous remplacer le document actuel par un document créé de cette façon? – mckamey