XML DOM - Range-objekt

Range-objektet representerar en kontinuerlig område i dokumentet.

Range-objekt

Range-objektet representerar en kontinuerlig områdesregion i dokumentet, som användaren markerar med musen i webbläsarfönstret.

Om en implementering stöder Range-modulen, då Document-objektetdefinierade createRange() metoden,kalla det för att skapa nya Range-objekt.

Observera:IE definierade en icke-kompatibel Document.createRange() metod, som returnerar ett objekt som liknar Rang-gränssnittet, men är inte kompatibelt.

Range-gränssnittet definierar ett stort antal metoder för att specificera området som är markerat i dokumentet, samt några metoder som kan användas för att utföra klippa och klistra operationer inom det markerade området.

Egenskaperna för Range-gränssnittet erbjuder metoder för att få tag på gränsnoden och avståndet för intervallet. Dessa metoder erbjuder också metoder för att sätta intervallets gränser.Observera att intervallets gränser kan sättas till Document eller DocumentFragment-objektinom knuden. När gränsens gränspunkter har definierats, kan du använda metoderna deleteContents(), extractContents(), cloneContents() och insertNode() för att utföra klippa, kopia och klistra operationer.

När dokumentet ändras genom att lägga till eller ta bort, kommer alla Range-objekt som representerar en del av dokumentet att ändras (om nödvändigt), för att hålla deras gränspunkter giltiga och för att de (i så stor utsträckning som möjligt) representerar samma dokumentinnehåll.

Termer: intervall, gränspunkt och avstånd

En intervall har två gränspunkter, en början och ett slut. Varje gränspunkt specificeras av en nod och dess avstånd. Den vanliga noden är Element-knudochDocument-knudeller Text-knudFör Element-knuden och Document-knuden, avståndet refererar till dess underknuden. Om avståndet är 0, betyder det att gränsen ligger före den första underknuden på noden. Om avståndet är 1, betyder det att gränsen ligger efter den första underknuden och före den andra underknuden. Men om gränsnoden är en Text-nod, refererar avståndet till positionen mellan två tecken i texten.

Konstanter för Range-objektet

Dessa konstanter specificerar hur Range-objektets gränspunkter jämförs.

De är parametrar för compareBoundaryPoints() -metoden how Gyldiga värden för parametern:

Konstanter Beskrivning
START_TO_START Jämför den specifika ranges början med den aktuella ranges början.
START_TO_END Jämför den specifika ranges början med den aktuella ranges slutpunkt.
END_TO_END Jämför den specifika ranges slutpunkt med den aktuella ranges slutpunkt.
END_TO_START Jämför den specifika ranges slutpunkt med början av den aktuella range.

Egenskaper för Range-objektet

Observera:Alla egenskaper är skrivskyddade och kan inte ändras genom att sätta dessa egenskaper. Det måste anropas setEnd() - och setStart() -metoder för att uppnå detta.

Observera:Alla läsoperationer på dessa egenskaper kastar ett fel med koden INVALID_STATE_ERR efter att detach() -metoden har anropats. DOMException-undantag.

Egenskaper Beskrivning
collapsed Om början och slutet av range är på samma plats i dokumentet, är det sant, vilket innebär att range är tom eller förkollapsad.
commonAncestorContainer Det gemensamma anfäddekontainern för början och slutet av range (dvs. deras äldsta föräldernoder), den djupaste Document-knuden.
endContainer Document-knuden som innehåller slutet av range.
endOffset Slutpositionen i endContainer.
startContainer Document-knuden som innehåller början av range.
startOffset Startpositionen i startContainer.

Metoder för Range-objektet

Observera:Om detach() -metoden för range har anropats, kommer nästa anrop av någon metod på Range-objektet att kasta ett fel med koden INVALID_STATE_ERR. DOMException-undantag.

Metod Beskrivning
cloneContents() Returnerar ett nytt DocumentFragment-objekt som innehåller en kopia av den dokumentområde som range-objektet representerar.
cloneRange() Skapa ett nytt Range-objekt som representerar samma dokumentområde som det aktuella Range-objektet.
collapse() Falla ihop denna omfattning så att dess gränspunkter överensstämmer.
compareBoundaryPoints() Jämför gränsen för den angivna omfattningen med gränsen för den aktuella omfattningen och returnera -1, 0 eller 1 beroende på deras ordning. Vilken gräns som jämförs bestämmer den första parametern, och dess värde måste vara en av de konstanter som definierats tidigare.
deleteContents() Ta bort den dokumentområde som representeras av den aktuella Range-objektet.
detach() Meddela att implementeringen inte längre använder den aktuella omfattningen, och att det kan stoppa spårningen. Om denna metod för omfattningen anropas kommer nästa anrop av någon metod för denna omfattning att kasta ett undantag med koden INVALID_STATE_ERR. DOMException-undantag.
extractContents() Ta bort den dokumentområde som representeras av den aktuella omfattningen och returnera innehållet som ett DocumentFragment-objekt. Denna metod och kombinationen av cloneContents() och deleteContents() är mycket lik.
insertNode() Infoga den angivna noden i början av dokumentomfattningen.
selectNode() Ställ in gränsen för denna omfattning så att den innehåller den angivna noden och alla dess barn.
selectNodeContents() Ställ in gränsen för denna omfattning så att den innehåller alla barn till den angivna noden, utan att inkludera noden själv.
setEnd() Sätt slutet på denna omfattning till den angivna noden och avståndet.
setEndAfter() Sätt slutet på denna omfattning till att vara nära den angivna noden efteråt.
setEndBefore() Sätt slutet på denna omfattning till att vara nära den angivna noden innanför.
setStart() Sätt början på denna omfattning till den angivna avståndet från den angivna noden.
setStartAfter() Sätt början på denna omfattning till att vara nära den angivna noden efteråt.
setStartBefore() Sätt början på denna omfattning till att vara nära den angivna noden innanför.
surroundContents() Infoga den angivna noden i början av dokumentomfattningen och justera alla noder inom omfattningen så att de blir barn till den nyligen infogade noden.
toString() Återställ den rena textinnehållet för den dokumentområde som representeras av denna omfattning.