Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Document Object Model — Wikipédia
Document Object Model — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.

Page d’aide sur l’homonymie

Pour les articles homonymes, voir DOM.

Document Object Model

Description de cette image, également commentée ci-après
Représentation DOM d'une page HTML.
Informations
Dépôt github.com/whatwg/domVoir et modifier les données sur Wikidata
Type Modèle
Interface de programmationVoir et modifier les données sur Wikidata
Licence Creative Commons Attribution 4.0 International (d)Voir et modifier les données sur Wikidata
Site web dom.spec.whatwg.orgVoir et modifier les données sur Wikidata

modifier - modifier le code - voir Wikidata (aide)

Le Document Object Model (DOM) est une interface de programmation normalisée par le W3C, qui permet à des scripts d'examiner et de modifier le contenu du navigateur web[1]. Par le DOM, la composition d'un document HTML ou XML est représentée sous forme d'un jeu d'objets – lesquels peuvent représenter une fenêtre, une phrase ou un style, par exemple – reliés selon une structure en arbre[1]. À l'aide du DOM, un script peut modifier le document présent dans le navigateur en ajoutant ou en supprimant des nœuds de l'arbre[1].

Description

[modifier | modifier le code]

Document Object Model (DOM) signifie « modèle d'objets de document »[2].

Modèle
Un modèle sert à représenter quelque chose, comme le plan d'une ville. Le DOM représente le document qui se trouve dans le navigateur[2].
Objet
En programmation, un objet est un conteneur qui comporte des propriétés et des méthodes – qui sont des variables et des actions concernant ce qu'il représente[2]. Les objets du DOM peuvent représenter une fenêtre, un document, une phrase, un style…[1]
Document
Le DOM concerne un document, tel qu'une page web affichée dans un navigateur[2]. Une page web commence par une balise !DOCTYPE suivi de la balise <html>dans laquelle se trouve le reste du document[2]. Le DOM représente le document affiché par une structure en arbre, comportant des nœuds (branches et feuilles)[2].

Histoire

[modifier | modifier le code]

À l'origine, le DOM (niveau 0, legacy) était un ensemble d'objets mis à disposition par Netscape Navigator, dont la version 4 parut en juin 1997. Internet Explorer 4 suivit en octobre la même année. Ces deux navigateurs intégraient le support du DHTML[2], lequel requérait des extensions alors offertes par le DOM rudimentaire d'alors. Le document pouvait désormais être manipulé à travers le DOM ; cependant le même document n'était pas représenté de la même manière par les deux navigateurs. Ce problème a progressivement disparu avec l'adoption du DOM normalisé par le W3C[2]. Le DOM (niveau 4) est aujourd'hui incorporé dans la norme HTML5[1].

Mise en œuvre

[modifier | modifier le code]

La spécification du W3C stipule les objets ainsi que les méthodes et les propriétés qu'un navigateur web doit impérativement mettre à disposition[1].

Les principales catégories d'objet d'un arbre DOM sont le document, les éléments et les attributs[1] :

  • document expose les informations concernant l'ensemble du document HTML ainsi que la balise <html>[1] .
  • chaque element expose une balise d'un document HTML ou XML, et comporte une propriété attributes qui expose les attributs de la balise. Chaque élément comporte des méthodes permettant d'accéder aux éléments parent, enfant et frères de l'arbre DOM[1] .
  • chaque text contient le texte qui se trouve à l'intérieur d'une balise[1] .

Chaque navigateur met en œuvre le DOM dans son langage de programmation. La spécification du DOM est alignée avec le langage JavaScript, reconnu par tous les navigateurs web[1]. N'importe quelle partie d'une page web peut ainsi être modifiée par programmation, et le programme fonctionnera sur n'importe quel navigateur web conforme à la norme DOM[1].

Techniquement le DOM permet de lire et modifier n'importe quel document utilisant des balises, avec n'importe quel langage de programmation qui offre une interface de programmation DOM[2].

Évolution du DOM au sein des navigateurs web

[modifier | modifier le code]
WHATWG DOM

Avant sa standardisation par le W3C, chaque navigateur web disposait de son propre Document Object Model. Si le langage de base destiné à manipuler les documents web a vite été standardisé autour de JavaScript, il n'en a pas été de même pour la série précise de fonctions à utiliser et la manière de parcourir le document. Par exemple, lorsque Netscape Navigator préconisait de parcourir un tableau indexé nommé document.layers[], Internet Explorer l'appelait plutôt document.all[], et ainsi de suite. En pratique, cela obligeait à écrire (au moins) deux versions de chaque morceau de script si l'on voulait rendre son site accessible au plus grand nombre.

La standardisation de ces techniques s'est faite en plusieurs étapes, lesquelles étendent chaque fois les possibilités précédentes sans jamais les remettre en cause.

DOM 1

[modifier | modifier le code]

La première est le DOM Level 1 publié en 1998 (le niveau 0 étant considéré comme l'implémentation de base figurant dans Netscape Navigator 2.0), où le W3C a défini une manière précise de représenter un document (en particulier un document XML) sous la forme d'un arbre. Chaque élément généré à partir du balisage comme, dans le cas de HTML, un paragraphe, un titre ou un bouton de formulaire, y forme un nœud. Est également définie une série de fonctions permettant de se déplacer dans cet arbre, d'y ajouter, modifier ou supprimer des éléments. En plus des fonctions génériques applicables à tout document structuré, des fonctions particulières ont été définies pour les documents HTML, permettant par exemple la gestion des formulaires. Le DOM Level 1 a été disponible dans sa plus grande partie dès les premières versions d'Internet Explorer 5 et de Netscape 6.

DOM 2

[modifier | modifier le code]

La seconde étape est le DOM Level 2 (publié en 2000), à présent constitué de six parties (en plus de Core et HTML, on trouvera Events, Style, View et Traversal and Range). Dans les évolutions de la brique de base (Core), on notera la possibilité d'identifier plus rapidement un nœud ou un groupe de nœuds au sein du document. Ainsi, pour obtenir un élément particulier on ne le recherchera plus dans un tableau comme dans les DOM propriétaires précédents, mais on appellera la fonction getElementById().

DOM 3

[modifier | modifier le code]

Le troisième niveau, publié au printemps 2004[3], a ajouté :

  • le support de XPath,
  • la gestion d'événements clavier,
  • une interface de sérialisation de documents XML.

DOM 4

[modifier | modifier le code]

Le quatrième niveau a été publié en décembre 2015. Sa dernière mise à jour date de décembre 2020[4]

Aspects techniques

[modifier | modifier le code]

DOM permet de représenter la structure d'un document et de ses éléments sous forme d'un arbre. Il est donc préférable de parcourir et de mémoriser l'intégralité du document avant de pouvoir effectuer les traitements voulus. Pour cette raison, les programmes utilisant DOM ont souvent une empreinte mémoire volumineuse en cours de traitement. À l'inverse, à partir d'un arbre DOM donné, il est possible de générer des documents dans le langage de balisage voulu, qui pourront à leur tour être manipulés par l'interface DOM.

DOM est utilisé pour pouvoir modifier facilement des documents XML ou accéder au contenu des pages web. Dans les cas ne nécessitant pas de manipuler les documents XML, mais juste de les lire, la méthode SAX peut également être choisie car elle traite les éléments de façon successive sans charger le document en mémoire. Elle s'impose quand la taille du document excède la capacité de la mémoire.

Événements

[modifier | modifier le code]

La capture d'un événement consiste à exécuter une action (par exemple un programme en JavaScript) lorsque l'événement surveillé se produit dans le document. Les événements capturables du DOM sont[5] :

Événements page et fenêtre

[modifier | modifier le code]
  • onabort — s'il y a une interruption de chargement
  • onerror — en cas d'erreur pendant le chargement de la page
  • onload — après la fin du chargement de la page
  • onbeforeunload — se produit juste avant de décharger la page en cours (par changement de page, en quittant)
  • onunload — se produit lors du déchargement de la page (par changement de page, en quittant)
  • onresize — quand la fenêtre est redimensionnée

Événements souris

[modifier | modifier le code]
  • onclick — sur un simple clic
  • ondblclick — sur un double clic
  • onmousedown — lorsque le bouton de la souris est enfoncé, sans forcément le relâcher
  • onmousemove — lorsque le curseur est déplacé
  • onmouseout — lorsque le curseur sort de l'élément
  • onmouseover — lorsque le curseur se trouve sur l'élément
  • onmouseup — lorsque le bouton de la souris est relâché
  • onscroll — lorsque le scroll de la souris est utilisé

Événements clavier

[modifier | modifier le code]
  • onkeydown — lorsqu'une touche est enfoncée
  • onkeypress — lorsqu'une touche est pressée et relâchée
  • onkeyup — lorsqu'une touche est relâchée

Événements formulaire

[modifier | modifier le code]
  • onblur — à la perte du focus
  • onchange — à la perte du focus, si la valeur a changé
  • onfocus — lorsque l'élément obtient le focus (ou devient actif)
  • onreset — lors de la remise à zéro du formulaire via un bouton ou une fonction reset()
  • onselect — quand du texte est sélectionné
  • onsubmit — quand le formulaire est validé via un bouton ou une fonction submit()

DOM virtuel

[modifier | modifier le code]
Cette section est vide, insuffisamment détaillée ou incomplète. Votre aide est la bienvenue ! Comment faire ?

Notes et références

[modifier | modifier le code]
  1. ↑ a b c d e f g h i j k et l (en) Paul S. Wang, Dynamic Web Programming and HTML5, CRC Press, 2012, (ISBN 9781439871829)
  2. ↑ a b c d e f g h et i (en) Jeremy Keith et Jeffrey Sambells, DOM Scripting: Web Design with JavaScript and the Document Object Model, Apress - 2010, (ISBN 9781430233893)
  3. ↑ « Document Object Model (DOM) Level 3 Core Specification », sur w3.org (consulté le 10 avril 2023).
  4. ↑ (en) « DOM », sur w3.org (consulté le 10 avril 2023).
  5. ↑ « Document Object Model (DOM) Level 3 Events Specification », W3C, 6 septembre 2012.

Liens externes

[modifier | modifier le code]
  • (en) Site officiel
  • (fr) Référence du DOM en français sur MDN
  • (en) Introduction au DOM W3C, sur le site Quirksmode.org
  • (en) Gecko DOM Reference, référence combinée sur DOM Level 1 et 2
v · m
API Web
Côté serveur
Protocole de communication
  • CGI
  • SCGI
  • FCGI
  • AJP
  • WSRP
  • WebSocket
APIs serveur
  • C NSAPI (en)
  • C ASAPI
  • C ISAPI
  • COM ASP
  • Servlet
  • container
  • CLI OWIN (en)
  • ASP.NET Handler (en)
  • Python WSGI
  • Ruby Rack
  • JavaScript JSGI (en)
  • Perl PSGI
  • Portlet container
Modules apaches
  • mod_jk
  • mod_lisp (en)
  • mod_mono (en)
  • mod_parrot (en)
  • mod_perl
  • mod_php
  • mod_proxy (en)
  • mod_python (en)
  • mod_wsgi
  • mod_ruby (en)
  • Phusion Passenger
Sujets
  • Ressource du World Wide Web vs. Service web
  • Open API (en)
  • Webhook
  • Serveur d'applications
  • Scripting
Côté client
W3C
  • HTML5 audio (en)
  • Canvas
  • CORS
  • DOM
  • DOM events (en)
  • File (en)
  • Geolocation (en)
  • IndexedDB
  • SSE
  • SVG
  • Video
  • WebRTC
  • WebSocket
  • Web messaging (en)
  • Stockage web local
  • WebAuthn
  • Web worker (en)
  • XMLHttpRequest
Khronos
  • OpenCL
  • WebGL
Autres
  • Gears
  • Web SQL Database (formerly W3C)
Sujets
  • Page web dynamique
  • Open Web Platform (en)
  • Rich Internet application
v · m
JavaScript
Analyse statique de programmes
  • ESLint
  • JSHint
  • JSLint
Compilateur source à source
  • Babel.js
  • CoffeeScript
  • Dart
  • Emscripten
  • Google Closure Compiler
  • Google Web Toolkit
  • Morfik
  • TypeScript
  • AtScript
  • Opa
  • Nim
  • Haxe
  • Clojure
  • WebSharper
Concepts
  • Ajax
  • Client-side
  • HTML dynamique
  • Framework JavaScript
  • Syntaxe JavaScript
  • Javascript discret
Débogueur
  • Firebug
  • Komodo IDE
  • Microsoft Script Debugger
  • Microsoft Script Editor
  • Opera Dragonfly
  • Venkman
  • Web Inspector
Générateur de documentation
  • JSDoc
Éditeurs (comparaison (en))
  • Ace
    • Cloud9 IDE
  • Atom
  • CodeMirror
    • Light Table
    • Brackets
  • Koding
  • Orion
  • PhpStorm
  • Visual Studio
    • Visual Studio Express
    • Visual Studio Code
    • Visual Studio Team Services
Moteur
  • Moteur JavaScript
Framework
  • Comparaison des frameworks JavaScript
Technologie associée
  • Feuilles de style en cascade
  • Document Object Model
  • HTML
  • JSON
  • WebAssembly
Gestionnaire de paquets
  • npm
  • NuGet
  • Yarn
Côté serveur
  • Active Server Pages
  • Bun
  • CommonJS
  • JSGI
  • Node.js
  • Deno
  • Wakanda
Test unitaire
  • Jasmine
  • Mocha
  • QUnit
Personnalité
  • Douglas Crockford
  • Brendan Eich
  • John Resig
  • icône décorative Portail de l’informatique
  • icône décorative Portail d’Internet
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=Document_Object_Model&oldid=218931097 ».
Catégories :
  • XML
  • Standard du web
  • Interface de programmation
Catégories cachées :
  • Image locale correspondant à celle de Wikidata
  • Page utilisant P1324
  • Page utilisant P31
  • Page utilisant P275
  • Page utilisant P856
  • Article utilisant une Infobox
  • Article avec une section vide ou incomplète
  • Article contenant un appel à traduction en anglais
  • Portail:Informatique/Articles liés
  • Portail:Technologies/Articles liés
  • Portail:Internet/Articles liés
  • Portail:Médias/Articles liés
  • Portail:Société/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id