Gå til innhold

Webkafeen


Anbefalte innlegg

Videoannonse
Annonse
Hvordan fungerer DOM, egentlig? Lest litt om det, men aldri helt skjønt hva det går ut på. Noen som kunne forklart?

DTD er DOCTYPE-en til et markeringsspråk, som definerer alle elementene. I Henriks eksempel, legger du til minHeight-egenskapen til andre elementer enn det IE er vant til. DTD-en skal rett og slett inneholde alle elementer og hvilke egenskaper de har. Mer nøyaktig forklart i Wikipedias artikkel Document Type Definition.

 

Edit: Oi, trodde du spurte om hva DTD var, ikke DOM. Jeg som leste feil bare. :blush:

Endret av AfroDude
Lenke til kommentar
Jeg kan røpe at på torsdag vil det komme en artikkel på programmer.no som gir en grunnleggende innføring i XML DOM, så vent og se. ;)

Gleder meg :)

 

*hilse tilbake til pållert - går utifra det var meg du hilset til siden jeg ikke vet om noen andre mariuser her på wds :p *

 

Og forresten, Firefox er utrolig styrete! Har tuklet litt med Linux i det siste (Ubuntu er faktisk finfint, men jeg sliter litt med støtte for småting på laptopen), og siden Opera ikke akkurat er så utrolig bra der bestemte jeg meg for å gi Firefox en aldri så liten sjanse. Jeg er nå temmelig lei av å bruke masse tid på å lete frem halvdårlige extentions for å erstatte alle de deilige Opera-funksjonene. Det er riktignok et par snasne extentions som jeg gjerne skulle sett i Opera, men faen heller. Det finnes grenser for hva jeg gidder å bruke tiden min på. Føler meg nesten litt lammet uten det jeg er vant med fra Opera.

Dette var faktisk ikke for å starte en ny diskusjon, for der blir vi aldri enige uansett, men heller for å få ut bittelitt frustrasjon :p

Endret av PT
Lenke til kommentar
Og forresten, Firefox er utrolig styrete! Har tuklet litt med Linux i det siste (Ubuntu er faktisk finfint, men jeg sliter litt med støtte for småting på laptopen), og siden Opera ikke akkurat er så utrolig bra der bestemte jeg meg for å gi Firefox en aldri så liten sjanse. Jeg er nå temmelig lei av å bruke masse tid på å lete frem halvdårlige extentions for å erstatte alle de deilige Opera-funksjonene. Det er riktignok et par snasne extentions som jeg gjerne skulle sett i Opera, men faen heller. Det finnes grenser for hva jeg gidder å bruke tiden min på. Føler meg nesten litt lammet uten det jeg er vant med fra Opera.

Dette var faktisk ikke for å starte en ny diskusjon, for der blir vi aldri enige uansett, men heller for å få ut bittelitt frustrasjon :p

Å? Bruker Opera som standard nettleser i Ubuntu jeg, fungerer fint det. :)

Lenke til kommentar
Hvordan fungerer DOM, egentlig? Lest litt om det, men aldri helt skjønt hva det går ut på. Noen som kunne forklart?

DTD er DOCTYPE-en til et markeringsspråk, som definerer alle elementene. I Henriks eksempel, legger du til minHeight-egenskapen til andre elementer enn det IE er vant til. DTD-en skal rett og slett inneholde alle elementer og hvilke egenskaper de har. Mer nøyaktig forklart i Wikipedias artikkel Document Type Definition.

Trur du har misforstått litt:

 

Dei fleste her veit vel forhåpentligvis kva ein DTD er, men viss ikkje:

DTD (Document Type Definition) er eit dokument som inneheld definisjonane og handlingane til alle elementa/attributtane/egenskapane som det aktuelle språket inneheld.

 

DOM:

DOM (Document Object Model) er standarden som er i bruk i alle strukturerte oppmarkeringsspråk pr. dags dato. For eksempel: Når du ser trestrukturen til eit XML-dokument i ein nettlesar, ser du DOM-strukturen som den er lagt ut uendra av e.g. JavaScript.

 

Vha. klientsidespråk som JavaScript, kan du endre på DOM-strukturen.

Ta for eksempel egenskapen contentEditable, som WHATWG modifiserer og implementerer i HTML 5 for tida:

 

<!DOCTYPE html>
<title>DOM transformering</title>
<style>p { background: #f1f1f1; } </style>

<p contenteditable>Dette kan endrast på</p>
<a href="javascript:alert(document.documentElement.innerHTML)">Sjå dokumentendringane</a>

Lagre dette dokumentet, så åpner du det i IE (støtte i dei andre nettlesarane er ikkje utbygd enda, sidan HTML5-spesifikasjonen ikkje er ferdig).

 

Viss du no klikker på teksten i P-elementet, skal du kunne endre innhaldet i elementet.

 

For å dra det enda vidare, kan du endre storleiken på P-elementet, altså overstyre CSS-stilsettet (det blir lagt til ein STYLE-attributt på P-elementet):

 

<!DOCTYPE html>
<title>DOM transformering</title>
<style>div p { width: 200px; height: 500px; background: #f1f1f1; } </style>

<div contenteditable>
<p>
Dette kan endrast på
</p>
</div>
<a href="javascript:alert(document.documentElement.innerHTML)">Sjå dokumentendringane</a>

 

 

Eg eksprimenterte litt med dette for nokre dagar sidan, og fann ut at viss ein legg til position: absolute i stilsettet, vil ikkje alle markørane som brukast for å endre storleiken fungere:

 

<!DOCTYPE html>
<title>DOM transformering</title>
<style>div p { width: 200px; height: 500px; background: #f1f1f1; position: absolute;} </style>

<div contenteditable>
<p>
Dette kan endrast på
</p>
</div>
<a href="javascript:alert(document.documentElement.innerHTML)">Sjå dokumentendringane</a>

 

 

---------------------------------------------

 

Var det litt oppklarande? :)

Lenke til kommentar
Men henrik, vil du si at det er en bedre løsning å bruke et javascript for å løse min-height problemet i IE enn det er å bruke !important.

DOM metoden er jo mer foroverkompatibel, men er alltid litt skeptisk til å putte inn en massa javascript i koden min

Eg foretrekker eigentleg `the underscore hack`, sidan det er unødvendig å bruke !important-deklarasjonen til slike formål. Bruker !important på noko sjølv, men det er berre fordi eg er for lat til å gjere noko med det :blush:

 

Skal koke opp eit eksempel med JavaScript, må berre få i meg litt kaffi først

Endret av Henrik Lied
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...