<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
  <head>
    <title>Openweb.eu.org - Le Document Object Model</title>
    <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
    <link rel="schema.DC" href="http://purl.org/dc/elements/1.1/" />
    <meta name="DC.Language" scheme="RFC3066" content="fr" />
    <meta name="DC.Identifier" content="dom" />
    <meta name="DC.Creator" content="Tristan Nitot" />
    <meta name="DC.Date.created" scheme="W3CDTF" content="2003-03-21" />
    <meta name="DC.Date.modified" scheme="W3CDTF" content="2003-03-21" />
    <meta name="DC.Rights" content="Cet article est sous licence Creative Commons Attribution-ShareAlike." />
    <meta name="DC.Subject" content="dom" />
  </head>
  <body>
    <h1>Le Document Object Model</h1>
    <ul>
      <li>
        <strong>Auteur :</strong> <a href="mailto:tristan.nitot%40openweb.eu.org">Tristan Nitot</a>
      </li>
      <li>
        <strong>Mise à jour :</strong> 21/03/2003</li>
    </ul>
    <h3>Une définition</h3>
    <p>Le <acronym title="Document Object Model" lang="en">DOM</acronym> est l'interface programmatique (<acronym title="Application Programming Interface" lang="en">API</acronym>) qui permet au développeur web d'accéder et de manipuler le contenu d'une page web, aussi appelée document. Il fournit une représentation structurée et orientée objet des éléments et du contenu d'une page avec les méthodes permettant de modifier les propriétés de ces objets. Il fournit aussi des méthodes permettant l'ajout et la suppression de tels objets, permettant ainsi au développeur web de créer du contenu dynamique en modifiant le contenu, la structure et le style du document.</p>
    <p>Le <acronym>DOM</acronym> fournit aussi une interface de gestion des événements, pour capturer les actions du navigateur et de son utilisateur, et d'y réagir.</p>
    <h3>
      <acronym>DOM</acronym> et JavaScript/ECMAScript</h3>
    <p>Le <acronym>DOM</acronym> étant une <acronym>API</acronym>, il est utilisé depuis un langage de programmation qui s'exécute dans le navigateur. Il s'agit le plus souvent de JavaScript ou de <a href="/articles/introduction_ecmascript/">son équivalent standardisé <acronym>ECMAScript</acronym>
      </a>, mais le <acronym>DOM</acronym> a été conçu pour être indépendant de tout langage.</p>
    <h3>Les différentes versions</h3>
    <p>Il existe plusieurs versions du <acronym>DOM</acronym>. Toutes sont standardisées par le <acronym title="World Wide Web Consortium" lang="en">W3C</acronym> :</p>
    <ol>
      <li>le <a href="http://www.w3.org/TR/REC-DOM-Level-1/">
          <acronym>DOM</acronym>Level 1</a> (Core + <acronym title="HyperText Markup Language" lang="en">HTML</acronym>) est daté du 1er octobre 1998 ;</li>
      <li>le <acronym>DOM</acronym> Level 2, plus complexe, est divisé en plusieurs parties :<a href="http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/">Core</a>, <a href="http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/">Events</a>, <a href="http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113/">Style</a>, <a href="http://www.w3.org/TR/2000/REC-DOM-Level-2-Views-20001113/">Views</a> et <a href="http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113/">Traversal and range</a>, finalisées simultanément le 13 novembre 2000. La spécification <a href="http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109/">
          <acronym>DOM</acronym> Level 2 <acronym>HTML</acronym>
        </a> a été finalisée en janvier 2003 ;</li>
      <li>le <acronym>DOM</acronym> level 3 est en cours de conception par le <acronym>W3C</acronym>.</li>
    </ol>
    <p>Il existe aussi ce que l'on appelle abusivement le <acronym>DOM</acronym> Level 0, qui est un ensemble d'<acronym>API</acronym> qui existaient déjà dans les navigateurs avant même que le <acronym>W3C</acronym> n'ait standardisé <acronym>DOM</acronym> Level 1. <acronym>DOM</acronym> Level 0 n'est donc pas un standard.</p>
  </body>
</html>
