Esimerkki objektien hierarkiasta DOM-mallin mukaisessaHTML-tiedostossa.
Document Object Model (suom.dokumenttioliomalli, yleisestiDOM) on tapa kuvata rakenteisen dokumentin, kutenHTML:n,XML:n taiXHTML:n, rakennepuuna, jonka eri olioita voi hakea, tutkia ja manipuloida esimerkiksiJavaScriptin avulla.[1]DOMin avulla voi toteuttaa vuorovaikutteisiawww-sivuja, jotka eivät vaadi jatkuvaapalvelinyhteyttä. DOM:in tarkoitus on määrittää kuinka dokumentissa olevat elementit välittävät tietoa toisillensa ja kuinka näihin elementteihin voidaan viitata.[1][2]Document Object Model eli DOM onohjelmointirajapinta eliAPI, joka mahdollistaa selaimessa esitettävien web-sivuja vastaavienelementtipuiden muokkaamisen ohjelmallisesti.
Legacy DOM oli rajoitettu niissä elementeissä, joita voitiin käyttää. Lomake-, linkki- ja kuvaelementteihin voitiin viitata hierarkisella nimellä, joka alkoi juuridokumenttiobjektilla. Hierarkisessa nimessä voidaan käyttää joko läpikäytyjen elementtien nimiä tai peräkkäisiä indeksejä. Esimerkiksi "form input" elementtiä voitiin käyttää muodossadocument.formName.inputName taidocument.forms[0].elements[0].
Useimmat verkkoselaimet käyttävät DOM:n kaltaista sisäistä mallia hahmontaakseen asiakirjan. kuten HTML-sivun. Jokaisen dokumentin solmut (nodet) on järjestetty puurakenteeseen, jota kutsutaan DOM-puuksi, ja ylin solmu on nimeltään "Dokumenttiobjekti". Kun HTML-sivu renderöidään selaimissa, selain lataa HTML-koodin paikalliseen muistiin ja jäsentää sen automaattisesti näyttääkseen sivun näytöllä. DOM:ia ei välttämättä tarvitse esittää puumuotoisena[3]ja jotkin selaimet ovat käyttäneet muita sisäisiä malleja[4].
Kunverkkosivu ladataan, selain luo sivusta DOM-mallin, joka on HTML-dokumentin oliomuotoinen esitys, joka toimii rajapintana JavaScriptin ja itse dokumentin välillä. Tämä mahdollistaadynaamisten verkkosivujen,[5] luomisen, koska sivulla oleva JavaSript voi:
luoda, muuttaa ja poistaa mitä vain HTML elementtejä ja ominaisuuksia
↑What is the Document Object Model? W3C. ”However, the DOM does not specify that documents must be implemented as a tree or a grove, nor does it specify how the relationships among objects be implemented. The DOM is a logical model that may be implemented in any convenient manner.” Viitattu 12.9.2021.