implementation | NN 6 IE 5(Mac)/6(Win) DOM 1
Das implementation-Objekt (die JavaScript-Referenz für das W3C-Objekt DOMImplementation) repräsentiert bis zu einem gewissen Grad die Umgebung, die den Dokumentcontainer bildet – in unserem Fall den Browser. Sie erreichen dieses Objekt über die document.implementation-Eigenschaft.
Anhand der Methoden des Objekts können Sie feststellen, welche DOM-Module laut Browser unterstützt werden. In Netscape 6 stellt dieses Objekt auch ein Gateway zum Erstellen virtueller W3C-Document- und -DocumentType-Objekte außerhalb des aktuellen Dokumentbaums dar. Somit können Sie in Netscape 6 anhand der Eigenschaft document.implementation ein nicht dargestelltes Dokument für externe XML-Dokumente erzeugen.
Objektmodellreferenz
document.implementation
Objektspezifische Eigenschaften
Keine.
Objektspezifische Methoden
createDocument( ) | createDocumentType( ) | hasFeature( )
Objektspezifische Ereignisbehandlungsroutineneigenschaften
Keine.

createDocument( ) | NN 6 IE nicht zutreffend DOM 2
createDocument("namespaceURI", "qualifiedName", docTypeReference) |
Gibt eine Referenz auf ein neu erstelltes virtuelles W3C-DOM-Document-Objekt (nicht zu verwechseln mit der document-Node eines HTML-Dokuments) zurück. Netscape 6 erweitert dieses Document-Objekt um eine load( )-Methode, die das Laden von XML-Dokumenten in den Browser ermöglicht, obwohl sie für den Benutzer unsichtbar sind. Dadurch sind Skripts in der Lage, auf den Dokumentbaum des XML-Dokuments als Datenquelle für die Darstellung von Informationen im HTML-Dokument zuzugreifen. Wenn Sie ein externes XML-Dokument laden, können Sie das Document-Objekt mit leeren Werten für die drei Parameter erstellen:
    var myXDoc = document.implementation.createDocument("", "", null);
Beim Laden des externen Dokuments werden alle Belange im Hinblick auf den Namespace und den DOCTYPE durch den Inhalt des Dokuments gesteuert. Ein Beispiel hierzu finden Sie in Kapitel 5, Abschnitt 5.9.2.
Parameter
Zeichenfolge mit dem Namespace-URI für ein neues XML-Dokument. Zeichenfolge mit dem Bezeichner für den qualifizierten Namen des neuen Dokumentelements. Referenz auf eine DocumentType-Node (die möglicherweise von der Methode DocumentImplementation.createDocumentType( ) erzeugt wurde).
Zurückgegebener Wert
Referenz auf ein leeres Document-Objekt.

createDocumentType( ) | NN 6 IE nicht zutreffend DOM 2
createDocumentType("qualifiedName", "publicID", "systemID") |
Gibt eine Referenz auf ein neu erstelltes virtuelles W3C-DOM-DocumentType-Objekt zurück. Sie können das von dieser Methode zurückgegebene Objekt an die Methode DocumentImplementation.createDocument( ) übergeben.
Parameter
Zeichenfolge mit dem Bezeichner für den qualifizierten Namen des neuen Dokumentelements. Zeichenfolge mit dem öffentlichen Bezeichner für den DOCTYPE. Zeichenfolge mit dem Systembezeichner (in der Regel die URI der DTD-Datei) für den DOCTYPE.
Zurückgegebener Wert
Referenz auf ein DocumentType-Objekt, das noch nicht mit einem Document-Objekt verknüpft ist.

hasFeature( ) | NN 6 IE 5(Mac)/6(Win) DOM 1
hasFeature("feature", "version") |
Gibt den Booleschen Wert true zurück, wenn die Browseranwendung das angegebene W3C-DOM-Modul in der entsprechenden Version unterstützt (d. h. mit den erforderlichen Spezifikationen dieses Moduls konform ist). Die eng mit dieser Methode verwandte isSupported( )-Methode führt denselben Test mit einer einzelnen Node durch und ermöglicht Ihnen festzustellen, ob eine Funktion für den aktuellen Nodetyp unterstützt wird. Die Parameterwerte für diese beiden Methoden sind identisch.
Es obliegt dem Browserhersteller sicherzustellen, dass das im Browser implementierte DOM mit den einzelnen Modulen konform ist, bevor der Browser autorisiert wird, für ein Modul den Wert true zurückzugeben. Dies bedeutet natürlich nicht notwendigerweise, dass die Implementierung fehlerfrei oder mit anderen Implementierungen konsistent ist. Caveat Scriptor.
Theoretisch können Sie mithilfe dieser Methode prüfen, ob ein bestimmtes Modul unterstützt wird, bevor Sie auf eine Eigenschaft zugreifen oder eine Methode aufrufen. Das folgende Skriptfragment aus dem Head-Abschnitt eines Dokuments stellt eine dynamische Verknüpfung mit einer anderen externen Stylesheet-Datei her, um "echte" CSS2-Unterstützung bereitzustellen:
    var cssFile;
    if (document.implementation.hasFeature("CSS", "2.0")) {
        cssFile = "styles/corpStyle2.css";
    } else {
        cssFile = "styles/corpStyle1.css";
    }
    document.write(<link rel='stylesheet' type='text/css' href='" + cssFile + "'>");"
Diese browserweite Methode wird von mehr Browsern unterstützt als die elementspezifische Methode, sodass sie von mehr Entwicklern rascher genutzt werden dürfte.
Parameter
Im W3C-DOM, Level 2, sind folgende Modulnamenzeichenfolgen zulässig (Groß-/Kleinschreibung beachten): Core, XML, HTML, Views, StyleSheets, CSS, CSS2, Events, UIEvents, MouseEvents, MutationEvents, HTMLEvents, Range und Traversal. Zeichenfolge, die die exakte Version (Haupt- und Unterversion) des im ersten Parameter genannten DOM-Moduls angibt. Für das W3C-DOM, Level 2, lautet die Versionsnummer 2.0, selbst wenn das DOM-Modul einen anderen W3C-Standard mit abweichendem Nummerierungssystem unterstützt. Der Test auf HTML-DOM-Modulunterstützung gilt somit für Version 2.0, obgleich HTML bei Version 4.x steht.
Zurückgegebener Wert
Boolescher Wert: true | false.