Document Object Model (DOM) er en specifikation af en grænseflade til adgang til HTML eller XML-dokumenter. Det er defineret af World Wide Web Consortium.
En implementering, der opfylder denne specifikation, består af et sæt klasser sammen med deres metoder og attributter i form af objektiv programmering. Det giver computerprogrammer mulighed for dynamisk at ændre indholdet, strukturen og layout af et dokument.
Betegnelse
Udtrykket „Document Object Model“ er faktisk en misomer, da DOM ikke er defineret som en model, men som en grænseflade for den definerede dataadgang og er også udpeget af W3C. Ordlyden af betegnelsen understreger derimod den veldefinerede objektmodel, som grænsefladen er baseret på, og hvis gyldighed er en forudsætning for gyldigheden af den grænseflade, der er bygget på den. På et højere niveau af abstraktion, en grænseflade er også en model, nemlig for den måde, objekter eller data er tilgængelige.
Historie
DOM blev oprindeligt skabt under indtryk af mindst to udviklinger, der har formet computerverdenen betydeligt i den seneste tid. Begge er baseret på behovet for at kunne få adgang til de strukturerede data i HTML- og XML-dokumenter på en enkel og ensartet måde.
I midten af 1990 ‚erne, da World Wide Web blev mere og mere populære, blev skriftsproget JavaScript opfundet, og populære web browsere siden da har inkluderet tolke, der kører sådanne scripts. JavaScript definerede rudimentære måder at få adgang til HTML-dokumentet og håndtere begivenheder. Senere forskellige browser producenter opfundet forskellige dynamiske HTML (DHTML) modeller, der tillod en mere omfattende ændring i strukturen og udseendet af dokumentet, mens dokumentet vises i browseren. De første DOM standarder af W3C er derfor forsøg på at fusionere, standardisere og i sidste ende erstatte de forskellige proprietære JavaScript og DHTML teknikker, der opstod i løbet af den tid af browseren krige. Dette er lykkedes, så DOM i dag spiller en central rolle i JavaScript programmering.
Samtidig XML opstod som en generel udveksling format for den humanistiske læsbare repræsentation af strukturerede data, efter succes HTML. Behandling XML- dokumenter krævede en forståelig, kraftfuld og tværsproglig programmeringsgrænseflade. DOM tilbyder dette og definerer også yderligere grænseflader til komfortabel håndtering af XML-dokumenter.
Grundlaget for DOM baseret på et eksempel
Følgende HTML-kode definerer en tabel med tabelelementet og forskellige underelementer:
< tabel >
< tead >
< st >
< th > Fornavn < / th >
< th > Navn < / th >
< / st >
< / tead >
< tbody >
< st >
< td > Donald < / td >
< td > Duck < / td >
< / st >
< / tbody >
< / tabel >
Behandling af et dokument
I første trin, et eksisterende dokument er læst ind af programmet og et dokument objekt er genereret. På grundlag af dette objekt, indhold, struktur og præsentation kan tilgås ved hjælp af metoderne i API.
I særdeleshed tillader DOM
navigation mellem dokumentets enkelte knudepunkter
generering, flytning og sletning af knuder og
læse, ændre og slette tekstindhold.
Ved afslutningen af behandlingen kan et nyt XML- eller HTML-dokument genereres fra dokumentobjektet ved såkaldt serialisering.
Standardisering af DOM
DOM har været en standard for W3C siden 1998 og er blevet opdateret og udvidet flere gange siden. Der er flere versioner (niveauer) hver med forskellige moduler:
DOM Niveau 0
Dette niveau blev aldrig formelt angivet. Niveau 0 refererer til JavaScript- brugbare teknikker til at få adgang til HTML-dokumenter. Disse blev indført af web-browsere såsom Internet Explorer og Netscape Navigator før standardiseringen af DOM.
DOM-niveau 1
DOM Kernen definerer flytning i DOM træet, manipulere knudepunkterne, herunder indsætte nye elementer og indstilling attributter.
DOM HTML er udvidelsen for adgang til HTML-dokumenter. Det standardiserer og fuldender den allerede almindelige praksis baseret på JavaScript specifikationer af Netscape og Microsoft JScript.
DOM Niveau 2
DOM Core: Inkluderer udvidelse af XML navnerum support
DOM HTML: Udvidelse til XHTML-dokumenter, tilpasning til DOM 2 Core
DOM Style og DOM CSS muliggør dynamisk læsning, tilføjelse og ændring af formatering eller layout af dokumentet via style ark, især Cascading Style Sheets (CSS).
DOM Views giver adgang til oplysninger fra specifikke typer af reproduktion af dokumentet (for eksempel den grafiske repræsentation i webbrowseren). Dette bruges hovedsageligt sammen med DOM CSS til at finde ud af de faktiske CSS-ejendomsværdier for visse elementer (for eksempel „Hvilken baggrundsfarve er denne overskrift?“).
DOM Events standardiserer behandlingen af begivenheder i dokumentet, såsom brugerhandlinger. Bruges primært i forbindelse med JavaScript når HTML-dokumenter vises i webbrowsere. Baseret på modellerne af begivenheden håndtering af Netscape Navigator og Internet Explorer for HTML-dokumenter.
DOM Traversal og DOM Range: Kør gennem nodetræet ved hjælp af visse udvælgelseskriterier, arbejde med områder i dokumentet, der omfatter visse elementer og tekstknudepunkter
DOM Niveau 3
DOM 3 Hovednet: Omfattende forbedring, herunder forbedret undtagelseskontrol og håndtering af tegnkoder
DOM 3 Indlæs og Gem muliggør serialisering af dokumenter eller dokumentdele, samt at fortolke XML-dokumenter i strenge til dokumentobjekter. Derudover kan XML-dokumenter sendes og hentes via HTTP, som det er muligt med den mere velkendte XMLHttpRequest teknologi.
DOM 3 XPath tillader nodevalg baseret på XPath udtryk.
DOM 3 Begivenheder udvider DOM 2 begivenheder, herunder tastatur begivenheder.
DOM 3 Validering giver dig mulighed for at kontrollere, om DOM-dokumentet forbliver gyldigt efter en dynamisk ændring (tilføje eller fjerne noder).
DOM 3 Visninger og formatering giver dig mulighed for dynamisk adgang til og ændre indhold, struktur og stil.
DOM 3 Abstract Schemes
