[Mise à jour le 25/8/2022]
Le navigateur commence par télécharger le fichier HTML correspondant à l'URL visitée.
Une fois l'arbre construit, ses noeuds (les éléments du document HTML) sont parcourus; les règles CSS sont appliquées et le rendu graphique de la page est effectué.
Dans le même temps, les scripts JavaScript présents dans la page sont exécutés. L'une de leurs activités principales est la définition de gestionnaires d'évènements. Ces gestionnaires peuvent modifier librement l'arbre représentant le document.
Exemple
Les attributs des balises peuvent aussi être modifiés. Parmi ces attributs, la modification de l'attribut style permet de changer le rendu graphique de l'élément. Ces changements sont immédiatement répercutés sur l'affichage.
Au chargement d'un document HTML depuis le réseau ou un fichier local, un “arbre” de la page est élaboré via le DOM. Chacun des éléments est considéré comme un objet et peut jouer le rôle de noeud, auquel on peut attacher les qualités de parent, enfant, orphelin ou frère. Cette représentation permet d'accéder aux propriétés de chacun de ces objets ou groupes d'objets et aux méthodes associées.
Exemple de code HTML5 et arborescence correspondante
Pour illustrer la notion d'objet dans le DOM ou a des fins de test, il est possible de modifier le DOM en entrant du code directement dans la console JavaScript du navigateur. On commence par créer le fichier HTML ci-dessous.
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Modification du DOM dans la console du navigateur</title> </head> <body> <div id="hello">Bonjour !</div> </body> </html>
On affiche la page dans un navigateur et on ouvre la console JavaScript avec F12 ou Ctrl-Maj-I dans Chrome.
document.body.style.background = "";
// Récupération d'un élément et modification du style let d = document.getElementById("hello"); d.style.color="blue"; d.style.fontWeight = "bold"; // Changement du contenu de l'élément d d.innerHTML="Bonjour tout le monde !"
Les navigateurs contiennent un interpréteur JavaScript qui lit les instructions situées entre les balises <script> et </script> et les traduit en différents types d'actions sur la page Web.
Exemple
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Compteur en JS</title> <script type="text/javascript"> let compteur = 0; function compter() { compteur = compteur + 1; let v = document.getElementById("valeur"); v.innerHTML = compteur; } </script> </head> <body> <button onclick="compter();">Cliquez moi !</button> <span id="valeur">0</span> </body> </html>