DOMImplementation#
Wstęp#
Interfejs DOMImplementation stanowi definicję Web IDL dla obiektów tworzonych i kojarzonych automatycznie z każdym rodzajem dokumentu. Obiekty typu DOMImplementation
są potocznie nazywane implementacjami DOM #.
Zadaniem interfejsu DOMImplementation było wyodrębnienie tych metod, które w żadne sposób nie zależą od typu danego dokumentu. Na przestrzeni lat pojawiło się jedynie pięć takich metod, z czego aktualna specyfikacja DOM4 pozostawia tylko cztery z nich, niemniej jednak wydaje się, że zdefiniowanie dla nich osobnego interfejsu po raz kolejny okazało się nietrafionym pomysłem. Wystarczyło ulokować je bezpośrednio w ogólnym interfejsie Document, zapewniając tym samym swobodny do nich dostęp z dowolnego dokumentu, bez żadnego obiektu czy innego polecenia pośredniczącego.
Interfejs DOMImplementation nie dziedziczy z żadnego innego interfejsu w ogólnym ujęciu DOM, chociaż w środowisku JS obiekty implementujące ten interfejs będą dziedziczyły z prototypu najwyższego rzędu. Zachowanie takie jest czymś normalnym w przypadku języka ECMAScript.
Implementację DOM można uzyskać za pomocą właściwości:
Metody DOMImplementation#
Nazwa | Opis |
---|---|
DOMImplementation.createDocument() | Tworzy nowy historyczny dokument XML z określoną przestrzenią nazw i nazwą kwalifikowaną dla jego elementu dokumentowego oraz deklaracją typu dokumentu. |
DOMImplementation.createDocumentType() | Tworzy nową deklarację typu dokumentu z określoną nazwą, identyfikatorem publicznym oraz identyfikatorem systemowym. |
DOMImplementation.createHTMLDocument() | Tworzy nowy dokument HTML z określonym tytułem i minimalną podstawową zawartością. |
DOMImplementation.hasFeature() | Zwraca wartość true . |
Składnia Web IDL#
interface DOMImplementation # { [NewObject] DocumentType createDocumentType(DOMString qualifiedName, DOMString publicId, DOMString systemId); [NewObject] XMLDocument createDocument(DOMString? namespace, [TreatNullAs=EmptyString] DOMString qualifiedName, optional DocumentType? doctype = null); [NewObject] Document createHTMLDocument(optional DOMString title); boolean hasFeature(); // useless; always returns true };