Fiche DOM : Introduction au DHTML (DOM)Objet de la ficheÉtat de la fichePlan de la ficheAvant proposLorsque l'internaute 1 via son navigateur 2 et Internet 3 charge une page HTML 4, cette dernière est envoyée vers le navigateur qui va la mettre dans sa mémoire 5 en la structurant sous forme d'objets 6 (écran, fenêtres, commandes, balises HTML) possédant leurs propriétés et méthodes. Les objets et leurs contenus sont eux même rangés sous forme de tableaux 7. La page HTML est ensuite affichée sous forme de page Web 8. Cette organisation est appelée le Document Object Model ou plus simplement le DOM. Cette organisation associée à javascript sera la base de la construction d'un site interactif. DOM (Document Object Model)Notion d'objets, propriétés et méthodesPrenons l'exemple avec l'objet Automobile (télécommandée). Cet objet a des propriétés comme sa longueur, sa largeur, sa vitesse maximale, sa couleur etc. Suivant la technique de modélisation objet on pourra accéder à ces propriétés de la manière suivante : Automobile.longueur ou Automobile.couleur. L'objet Automobile se subdivise en objets tels l'objet Conduite, ou
l'objet Moteur etc...
V(x) ou D(z) sont couramment appelées méthodes : méthode vitesse ou
méthode direction de l'objet Automobile. Le DOMDOM fournit une représentation structurée sous forme d'objets du document html. Lorsque le navigateur charge la page Internet cette dernière n'est pas rangée n'importe comment en mémoire mais comme une hiérarchie d'objets et de 'noeuds'. L'ensemble de cette hiérarchie est structurée sous forme d'un 'arbre' et accessible sous forme de tableaux. Il est donc possible d'accéder à tous les objets d'une page web depuis un script client (javascript est le langage le plus utilisé pour accéder à ces objets). Netscape et Microsoft ont développé des modèles de DOM sensiblement différents, ceci pouvant entraîner l' écriture d'une partie de code javascript pour chaque navigateur. Ces problèmes tendent à s'estomper avec les nouvelles versions des navigateurs qui sont de plus en plus conformes aux recommandations du consortium WWW (W3C). Les objets du navigateur possèdent un nom , des propriétés et des méthodes.
Du fait de cette structure, le DOM est aussi une interface qui permet aux concepteurs de pages Internet d'accéder
à ces objets et de manipuler leurs contenus. Cette représentation structurée permet aussi (à l'aide de méthodes) l'ajout et la
suppression des objets, permettant de concevoir des pages web au contenu dynamique en modifiant la structure et le style du document.
Les principaux objets du DOM que nous seront amenés à utiliser
Les propriétésL'objet window (fenêtre) nous permet d'accéder à différentes propriétés et méthodes concernant une fenêtre web. L'objet window comme "fenêtre" (qui n'a rien à voir avec
windows de Microsoft) constitue la racine de l'arbre DOM . Toutes les
propriétés, méthodes et autres objets seront toujours référencés par rapport
à cet objet de base.
window.objet_x.objet_y .élément_A.élément_B.propriétés (Chaque partie de l'expression est séparée par un point.)
Comme toutes les propriétés ou objets dépendent de la racine window qui
est donc la racine par défaut, il est fréquent que les concepteurs de pages
Internet l'omettent et code l'exemple précédent de la manière suivante :
Toutefois pour une meilleure visibilité du code HTML, la bonne habitude consiste à le préciser systématiquement ( on verra pourquoi dans la fiche popup ). Javascript et interaction avec le DOMGénéralitésCet exemple simple montre comment à partir d'un click de souris on peut interagir sur le contenu de certains éléments, sur la couleur de la police de caractères ou sur la couleur de fond d'un élément. En fait on le verra ultérieurement on peut agir sur la présentation (couleur, style, position, image d'arrière plan etc..) de n'importe quel élément HTML même lorsque la page est complètement chargée. Le principe général est le suivant :
ExempleL'exemple suivant utilise des instructions javascript que nous verrons plus en détails dans les fiches javascript. Même si ces instructions paraissent un peu obscures pour le moment, cela donne une idée du mécanisme général et illustre le principe décrit ci-dessus. Commentaires sur l'exemple Détection de l'évènement onclick sur une des cellules du tableau (+ ou -) <td class="green" onclick="compte('plus')" title="Cliquer pour incrémenter le compteur">+</td> Sur cet évènement appel de la fonction compte() avec le paramètre ‘plus’ ou ‘moins‘ et exécution des instructions contenues dans cette fonction. <td class="green" onclick="compte('plus')" title="Cliquer pour incrémenter le compteur">+</td> L’interface de communication HTML de javascript comprend la commande window.document.getElementById("Resultat") qui permet d’accéder via la structure DOM à l’élément HTML référencé par l’identificateur ‘Resultat’ (<div id="Resultat">Compteur : 0</div>). Associé à cette commande la méthode .innerHTML permet de remplacer dynamiquement le contenu du div par un nouveau contenu correspondant à la nouvelle valeur du compteur : D’autres méthodes sont ici utilisées comme : .style.backgroundColor = nouvelle couleur de fond ou . style.Color = nouvelle couleur de la police de caractère. |