implementation | NN 6 IE 5(Mac)/6(Win) DOM 1
L´objet implementation (la référence JavaScript pour l´objet DOMImplementation W3C) représente, d´une façon limitée, l´environnement composant le conteneur du document, dans notre cas, le navigateur. Vous pouvez accéder à cet objet gr ce à la propriété document.implementation.
Les méthodes de l´objet vous permettent de voir quels modules DOM le navigateur dit prendre en charge. Dans Netscape 6, cet objet est aussi une passerelle permettant la création d´objets Document et DocumentType W3C virtuels hors de l´arborescence de documents actuelle. Ainsi, dans Netscape 6, vous pouvez utiliser la propriété document.implementation pour commencer à générer un document non affiché pour les documents XML externes.
Référence de modèle d'objet
document.implementation
Propriétés spécifiques à l´objet
Aucune.
Méthodes spécifiques à l´objet
createDocument() | createDocumentType() | hasFeature()
Propriétés de gestionnaire d´événements spécifiques à l´objet
Aucune.

createDocument() | NN 6 IE s.o DOM 2
createDocument("namespaceURI", "qualifiedName", docTypeReference) |
Renvoie une référence à un nouvel objet Document virtuel du DOM W3C (pas le noeud document d´un document HTML). Netscape 6 élargit cet objet Document avec une méthode load() qui permet aux scripts de charger des documents XML dans le navigateur, bien qu´ils soient invisibles aux yeux de l´utilisateur. Les scripts peuvent alors accéder à l´arborescence de documents du document XML en tant que source de données afin d´afficher des informations dans le document HTML. Si vous chargez un document XML externe, vous pouvez créer l´objet Document avec des valeurs vides pour les trois paramètres:
    var myXDoc = document.implementation.createDocument("", "", null);
Lors du chargement du document externe, tout ce qui se rapporte à l´espace de nom et à DOCTYPE sera contrôlé par le contenu du document. Consultez la section 5.9.2 du chapitre 5 pour voir un exemple.
Paramètres
Chaîne de l´URI d´espace nom pour un nouvel élément du document XML. Identificateur, sous forme de chaîne, du nom du nouvel événement du document. Référence à un noeud DocumentType (qui peut être générée avec la méthode DocumentImplementation.createDocumentType()).
Valeur renvoyée
Référence à un objet Document vide.

createDocumentType() | NN 6 IE s.o DOM 2
createDocumentType("qualifiedName", "publicID", "systemID") |
Renvoie une référence à un nouvel objet virtuel DocumentType du DOM W3C. Vous pouvez transmettre l´objet renvoyé par cette méthode à la méthode DocumentImplementation.createDocument().
Paramètres
Identificateur, sous forme de chaîne, du nom du nouvel événement de document. Chaîne de l´identificateur public pour DOCTYPE. Chaîne de l´identificateur système (généralement l´URI du fichier DTD) pour DOCTYPE.
Valeur renvoyée
Référence à un objet DocumentType qui n´est pas encore associé à un objet Document.

hasFeature() | NN 6 IE 5(Mac)/6(Win) DOM 1
hasFeature("feature", "version") |
Renvoie la valeur booléenne true si l´application du navigateur prend en charge (c´est-à-dire se conforme aux spécifications) un module et une version du DOM W3C donnés. De la même manière , la méthode isSupported() effectue un test identique sur un noeud individuel, vous permettant de vérifier la prise en charge des fonctionnalités pour le type de noeud courant. Les valeurs de paramètres sont identiques pour les deux méthodes.
C´est au fabricant du navigateur de valider le fait que le DOM implémenté dans le navigateur se conforme à chaque module avant de permettre au navigateur de renvoyer true pour le module. Cela ne signifie pas nécessairement que l´implémentation n´a aucune bogue ou qu´elle est cohérente avec les autres implémentations. Les auteurs de scripts doivent faire attention.
En théorie, vous pouvez utiliser cette méthode pour vérifier la prise en charge des modules avant d´accéder à une propriété ou d´invoquer une méthode. Le fragment de script suivant de la partie d´en-tête d´un document lie dynamiquement un fichier de feuille de style externe différent pour une « véritable » prise en charge CSS2:
    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 + "'>");"
Plus de navigateurs prennent en charge cette méthode plutôt que la méthode spécifique à l´élément, ce qui aidera peut-être plus de développeurs à la déployer.
Paramètres
Dans le DOM W3C niveau 2, les chaînes de noms de modules sensibles à la casse sont: Core, XML, HTML, Views, StyleSheets, CSS, CSS2, Events, UIEvents, MouseEvents, MutationEvents, HTMLEvents, Range et Traversal. Représentation sous forme de chaîne des versions majeures et mineures du module du DOM citées dans le premier paramètre. Pour le DOM W3C niveau 2, la version est 2.0, même si le module du DOM prend en charge une autre norme W3C dotée de son propre système de numérotation. Ainsi, le texte pour la prise en charge du module du DOM HTML est pour la version 2.0, même si HTML est à 4.x.
Valeur renvoyée
Valeur booléenne: true | false.