Le DOM (Document Object Model) présente le document comme une hiérarchie d'objets (nodes) organisés en un arbre et il décrit une interface permettant à accéder et de mettre à jour le contenu, la structure et le style de documents HTML (plus généralement de type XML).
Intuitivement, l'objet "document" représente toute information attachée au contenu d'une page HTML, comme:
document.head
document.body
Grâce à ces structures et méthodes on peut créer dynamiquement des documents ou encore obtenir des informations sur le contenu d'un document.
L'objet document
est créé au fur et à mesure quand les fichiers de la page
se chargent. Parmi les méthodes de l'objet document
on trouve:
createElement(tag)
createAttribute(name)
getElementById(id)
Chaque élément, node
, du DOM, document.getElementbyId()
node.attributes[]
- tableau des attributs
node.childNodes[]
- tableau des éléments enfants
node.parentNode
- l'élément parent
node.style
- l'attribut "style"
node.appendChild(elem)
- ajoute
l'élément elem comme son dernier enfant
node.insertBefore(elem,fils)
- insère
l'élément elem comme nouvel enfant juste avant son enfant
existant fils
node.removeChild(oldChild)
node.replaceChild(newChild,oldChild)
node.click()
- simule le "clique" sur l'élément
node.getElementByTagName(tagName)
- retourne le tableau
des éléments tagName sous-jacents
Par exemple:
var x = document.getElementById("titre"); x.attributes; /* [{name:"id", value:"my_id",...}, {name:"style", value:"color:blue", ...}, ... ] */ x.childNodes; // [{textContent:"Mon titre", ...}] x.getElementsByTagName("li"); // [] x.parentNode.getElementsByTagName("li"); /* [{id="i1",textContent:"un",...}, {id="i2",textContent:"deux",...}, {id="",textContent:"bla",...}] */
<head> ... <script type="text/javaScript"> ... </script> ... </head>Cela assure que les fonctions soient connues, avant d'être appelées
<head> ... <script type="text/javascript" src="mon_programme.js"/> ...
Cacher un script:
<script> //<!-- Begin to hide script contents from old browsers. ..... expressions JavaScript... // End the hiding here. --> </script>
Afficher un contenu alternatif pour ces navigateurs: <noscript>
<noscript> <p>This page uses JavaScript!</p> </noscript>
Le code JavaScript est déclenché par 2 moyens:
<script>
de la page HTML - le code va
être exécuté au moment de la construction de l'élément du DOM<p onclick="alert('Voilà');">Cliquez ici</p>
En utilisant JavaScript on peut créer des pages web
dynamiques. Événements (events
) sont des actions qui
peuvent déclencher l'exécution du code JavaScript.
Certains éléments du DOM peuvent posséder des événements comme:
onBlur
(en quittant)onChange
(après modification réussie)onClick
(en cliquant)onFocus
(en activant)onKeydown
(en appuyant sur une touche)onKeypress
(en maintenant une touche appuyée)onKeyup
(en relâchant la touche)onLoad
(en chargeant un fichier)onMousedown
(en maintenant la touche de souris appuyée)onMousemove
(en bougeant la souris)onMouseout
(en quittant l'élément avec la souris)onMouseover
(en passant sur l'élément avec la souris)onMouseUp
(en relâchant la touche de souris)onReset
(en initialisant le formulaire)onSelect
(en sélectionnant du texte)onSubmit
(en envoyant le formulaire)onUnload
(en quittant le fichier)DOM supporte aussi les événements liés au temps, comme:
setTimeout("javascript statement",milliseconds)
clearTimeout(setTimeout_id)
setInterval("javascript statement",milliseconds)
clearInterval(setInterval_id)