2010-11-18 9 views
8

Jestem ciekawy, czy istnieje sposób na tworzenie węzłów DocType przez W3C DOM? Specyfikacja wyraźnie stwierdza, że ​​są one tylko do odczytu i nie można ich edytować, ale czy można je utworzyć?Czy W3C DOM może być użyty do utworzenia węzłów Document/DocType?

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

Interfejs dokumentu nie wydaje się mieć dowolny sposób stworzyć dla niego:

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

Być może szersze pytanie brzmi: Czy zupełnie nowy dokument HTML będzie budowany programowo przez DOM? Wiem o document.createDocumentFragment() ale mi chodzi równowartość korzeń dokumentu HTML ze szczególnym doctype itd


Aktualizacja: wygląda niedawnej Gecko i WebKit wdrożyć DOMImplementation.createDocument i DOMImplementation.createDocumentType ale nie IE8 lub wcześniej (Haven” t sprawdzone IE9). Więc niestety wciąż tam utknąłem.

Nie jestem też pewien, co mogę zrobić z tą nową instancją Dokumentu, gdy już ją otrzymam. Wszystkie obecne metody DOM są zawieszone na globalnym obiekcie dokumentu, więc nie ma sposobu na zamianę go na nowy.

Odpowiedz

1

Potrzebujesz obiektu DOMImplementation. Zobacz rozdział Bootstrapping.

+0

Nie widzę, jak to odpowiada na moje pytanie. Pojawia się obiekt 'DOMImplementation' umożliwiający zapytanie do obsługiwanych modułów DOM. Czy możesz dokładniej określić, w jaki sposób można użyć tego do tworzenia nowych instancji tych węzłów? – mckamey

+0

DOMImplementation (http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-102161490) ma metody createDocument i createDocumentType. – Alohci

+0

Ah w porządku, więc wygląda na to, że możesz dostać jeden z tych obiektów z 'document.implementation'. Czy możesz zastąpić bieżący dokument tym stworzonym w ten sposób? – mckamey

Powiązane problemy