XML DOM - Range-objekti

Range-objekti edustaa dokumentin jatkuvaa aluetta.

Range-objekti

Range-objekti edustaa dokumentin jatkuvaa aluetta, kuten käyttäjä valitsee alueen hiiren vedämisellä selaimen ikkunassa.

Jos toteutus tukee Range-moduulia, niin Dokumentti-objektimäärittää createRange() -menetelmä,kutsun sitä voidaksesi luoda uuden Range-objektin.

Huomioitavaa:IE määritti yhteensopimattoman Document.createRange() -menetelmän, joka palauttaa objektin, joka on samankaltainen Rang-kontaktin kanssa, mutta ei yhteensopiva.

Range-kontaktin ominaisuudet määrittelevät suuren määrän menetelmiä, joita käytetään määrittelemään dokumentissa valittu alue, lisäksi on joitakin menetelmiä, joita voidaan käyttää leikkaamiseen ja liimaamiseen valitussa alueessa.

Range-kontaktin ominaisuudet tarjoavat menetelmiä, joilla voi hakea alueen reunasolmut ja siirtymäviitteet. Menetelmät tarjoavat mahdollisuuden asettaa alueen reunat. Huomaa, että alueen reunat voidaan asettaa Dokumentti tai DocumentFragment-objektisolmuissa. Kun alueen reunapisteet on määritelty, voi käyttää deleteContents(), extractContents(), cloneContents() ja insertNode() -menetelmiä leikkaamiseen, kopiointiin ja liimaamiseen.

Kun dokumenttia muutetaan lisäämällä tai poistamalla, kaikki Range-objektit, jotka edustavat dokumentin osaa, muuttuvat (tarvittaessa), jotta niiden reunapisteet säilyisivät voimassa ja jotta ne (mahdollisimman lähellä) edustavat samaa dokumenttia.

Termit: alue, reunapiste ja siirtymäviite

Alueella on kaksi reunapistettä, nimittäin yksi aloituspiste ja yksi päättymispiste. Jokainen reunapiste määritetään solmun ja kyseisen solmun siirtymäviitteen avulla. Solmu on yleensä Element-solmujaDocument-solmutai Text-solmuElement- ja Document-tyyppisille solmuille, siirtymäviite viittaa kyseisen solmun alisolmuun. Siirtymäviite 0 tarkoittaa, että reunapiste sijaitsee kyseisen solmun ensimmäisen alisolmun edellä. Siirtymäviite 1 tarkoittaa, että reunapiste sijaitsee kyseisen solmun ensimmäisen alisolmun jälkeen, toisen alisolmun edellä. Jos kuitenkin reunasolmu on Text-solmu, siirtymäviite viittaa tekstin kahden merkin välistä sijaintiin.

Range-objektin konstit

Nämä konstit määrittelevät, miten Range-objektien rajapisteitä vertaillaan.

Ne ovat compareBoundaryPoints() -menetelmän how Parametrien lailliset arvot:

Konstit Kuvaus
START_TO_START Vertaa määritettyä range-objektin alkupistettä nykyisen range-objektin alkupisteeseen.
START_TO_END Vertaa määritettyä range-objektin alkupistettä nykyisen range-objektin loppupisteeseen.
END_TO_END Vertaa määritettyä range-objektin loppupistettä nykyisen range-objektin loppupisteeseen.
END_TO_START Vertaa määritettyä range-objektin loppupistettä nykyisen range-objektin alkupisteeseen.

Range-objektin ominaisuudet

Huomioitavaa:Kaikki ominaisuudet ovat luettavissa, eikä niitä voida muuttaa asettamalla näitä ominaisuuksia. Tämä voidaan tehdä vain kutsumalla setEnd() - ja setStart() -menetelmiä.

Huomioitavaa:detach() -menetelmän kutsumisen jälkeen näiden ominaisuuksien kaikki lukuoperaatiot aiheuttavat INVALID_STATE_ERR -virheen. DOMException poikkeus.

Ominaisuudet Kuvaus
collapsed Jos范围的 alkupiste ja loppupiste ovat dokumentin samassa sijainnissa, arvo on true, eli range on tyhjä tai taipunut.
commonAncestorContainer Range-objektin alkupisteen ja loppupisteen (eli niiden isäntäsolmut) syvimmässä dokumenttisolmu.
endContainer Dokumentin solmu, joka sisältää范围的 loppupisteen.
endOffset endContainerin loppupisteen sijainti.
startContainer Dokumentin solmu, joka sisältää范围的 alkupisteen.
startOffset startContainerin alkupisteen sijainti.

Range-objektin menetelmät

Huomioitavaa:Jos范围的 detach() -menetelmää on kutsuttu, seuraavat Range-objektin menetelmäkutsut aiheuttavat INVALID_STATE_ERR -virheen. DOMException poikkeus.

Metodi Kuvaus
cloneContents() Palauttaa uuden DocumentFragment-objektin, joka sisältää sen range-objektin edustaman asiakirja-alueen kopion.
cloneRange() Luo uusi Range-objekti, joka edustaa nykyisen Range-objektin samaa asiakirja-aluetta.
collapse() Kumoa tämä alue, jotta sen reunapisteet kohtaavat toisensa.
compareBoundaryPoints() Vertaa määritetyn alan reunapisteitä nykyisen alan reunapisteisiin ja palauta -1, 0 tai 1 niiden järjestyksen perusteella. Vertailun suorittaa ensimmäinen parametri, sen arvon on oltava edellä määritetty constantti.
deleteContents() Poista nykyisen Range-objektin edustama dokumenttialue.
detach() Ilmoita, että toteutus ei enää käytä nykyistä aluetta, ja voi lopettaa seurannan. Jos tämä metodi kutsutaan, seuraavassa kutsutussa alueen metodissa heitetään INVALID_STATE_ERR -koodin omaava poikkeus. DOMException poikkeus.
extractContents() Poista nykyisen alan edustama dokumenttialue ja palauta tämän alueen sisältö DocumentFragment-objektina. Tämä menetelmä ja cloneContents() -menetelmän yhdistelmä ovat hyvin samanlaisia kuin deleteContents() -menetelmä.
insertNode() Lisää määritetty solmu dokumenttialueen alkupisteeseen.
selectNode() Aseta tämän alan reunat, jotta se sisältää määritetyn solmun ja sen kaikki jälkeläiset.
selectNodeContents() Aseta tämän alan reunat, jotta se sisältää määritetyn solmun ja sen jälkeläiset, mutta ei itse solmua.
setEnd() Aseta tämän alan loppupiste määritetyn solmun ja siirtymän kanssa.
setEndAfter() Aseta tämän alan loppupiste solmun lähelle määritetyn solmun jälkeen.
setEndBefore() Aseta tämän alan loppupiste solmun lähelle ennen määritettyä solmua.
setStart() Aseta tämän alan alkupiste määritetyn solmun sisällä määritetyllä siirtymällä.
setStartAfter() Aseta tämän alan alkupiste solmun lähelle määritetyn solmun jälkeen.
setStartBefore() Aseta tämän alan alkupiste solmun lähelle ennen määritettyä solmua.
surroundContents() Lisää määritetty solmu dokumenttialueen alkupisteeseen, ja aseta kaikki alkupisteessä olevien solmujen isäntäsolmut uuden lisätyn solmun lapsisolmiksi.
toString() Palauta tämän alan edustama dokumenttialueen puhtaita tekstejä.