XML DOM - objek Range
- Halaman Sebelumnya DOM ProcessingInstr
- Halaman Berikutnya DOM RangeException
objek Range mewakili area kontinui dalam dokumen.
objek Range
objek Range mewakili area area kontinui dalam dokumen, seperti area yang dipilih pengguna dengan menggeser mouse di jendela browser.
Jika implementasi mendukung modul Range, maka objek Documentyang method createRange(),dengan memanggilnya dapat menciptakan objek Range baru.
Perhatian:IE mendefinisikan method Document.createRange() yang tidak kompatibel, objek yang dibalikannya mirip dengan interface Range tetapi tidak kompatibel.
Interface Range mendefinisikan banyak method untuk mendefinisikan area yang di pilih di dokumen, serta beberapa method lain yang dapat digunakan untuk operasi pemotongan dan menempel di area yang dipilih.
Properti interface Range menyediakan method untuk mendapatkan node batas dan offset dalam scope. Method tersebut menyediakan method untuk menetapkan batas scope. Perhatikan, batas scope dapat diatur ke Document atau objek DocumentFragmentpada node. Saat batas scope telah ditentukan, operasi pemotongan, menyalin dan menempel dapat dilakukan menggunakan method deleteContents(), extractContents(), cloneContents() dan insertNode().
Ketika dokumen diubah melalui operasi penambahan atau penghapusan, semua objek Range yang mewakili bagian dokumen akan berubah (jika diperlukan) untuk mempertahankan titik batas yang efektif, dan untuk mengekspresikan konten dokumen yang sama (sejauh mungkin).
Terminologi: scope, titik batas dan offset
Sebuah scope memiliki dua titik batas, yaitu titik awal dan titik akhir. Setiap titik batas ditentukan oleh sebuah node dan offset yang ada di node tersebut. Node tersebut biasanya Node Element、Node Documentatau Node TextUntuk node Element dan node Document, offset menunjukkan anak node yang ada di dalam node tersebut. Offset 0 menunjukkan titik batas berada di sebelum pertama anak node. Offset 1 menunjukkan titik batas berada di setelah pertama anak node, sebelum kedua anak node. Tetapi jika titik batas adalah node Text, offset menunjukkan posisi antara dua karakter di dalam teks.
Konstanta objek Range
Konstanta ini menentukan cara membandingkan titik batas objek Range.
Mereka adalah parameter compareBoundaryPoints() method how Nilai yang sah parameter:
Konstanta | Deskripsi |
---|---|
START_TO_START | Mengbandingkan titik awal range yang ditentukan dengan titik awal range saat ini. |
START_TO_END | Mengbandingkan titik awal range yang ditentukan dengan titik akhir range saat ini. |
END_TO_END | Mengbandingkan titik akhir range yang ditentukan dengan titik akhir range saat ini. |
END_TO_START | Mengbandingkan titik akhir range yang ditentukan dengan titik awal range saat ini. |
Atribut objek Range
Perhatian:Semua atribut adalah hanya baca, Anda tidak dapat mengubah titik awal dan akhir range melalui pengaturan atribut ini. Anda harus memanggil method setEnd() dan setStart() untuk melakukannya.
Perhatian:Operasi baca apapun terhadap atribut ini setelah pemanggilan method detach() akan melempar error dengan kode INVALID_STATE_ERR DOMException gangguan.
Atribut | Deskripsi |
---|---|
collapsed | Jika titik awal dan akhir range berada di lokasi yang sama di dokumen, maka nilai ini adalah true, yaitu range kosong, atau tergabung. |
commonAncestorContainer | Node Dokument yang paling dalam dan termasuk akar dari titik awal dan akhir range (yaitu node leluhur mereka), |
endContainer | Node Dokumen yang mengandung titik akhir range |
endOffset | Posisi akhir di dalam endContainer |
startContainer | Node Dokumen yang mengandung titik awal range |
startOffset | Posisi awal di dalam startContainer |
Metode objek Range
Perhatian:Jika method detach() range telah dipanggil, maka pemanggilan method apapun dari objek Range selanjutnya akan melempar error dengan kode INVALID_STATE_ERR DOMException gangguan.
Metode | Deskripsi |
---|---|
cloneContents() | Mengembalikan objek DocumentFragment baru yang mengandung salinan area dokumen yang diwakili oleh range ini. |
cloneRange() | Membuat objek Range baru yang mewakili area dokumen yang sama seperti objek Range saat ini. |
collapse() | Giling rentang, sehingga batasnya bersama-sama. |
compareBoundaryPoints() | Bandingkan batas rentang yang ditunjuk dan batas rentang saat ini, kembalikan -1, 0, atau 1 berdasarkan urutan mereka. Batas rentang yang dibandingkan ditunjuk oleh parameter pertama, nilai harus salah satu konstanta yang didefinisi sebelumnya. |
deleteContents() | Hapus area dokumen yang ditunjuk oleh objek Range saat ini. |
detach() | Beritahu implementasi bahwa rentang saat ini tidak lagi digunakan, dapat berhenti mengikuti. Jika metode ini dari rentang disebut, maka metode lain dari rentang yang disebut selanjutnya akan melempar gangguan dengan kode INVALID_STATE_ERR. DOMException gangguan. |
extractContents() | Hapus area dokumen yang ditunjuk oleh rentang saat ini dan kembalikan konten area tersebut dalam bentuk objek DocumentFragment. Metode ini mirip dengan kombinasi dari metode deleteContents() dan cloneContents(). |
insertNode() | Sisihkan node yang ditunjuk ke titik awal rentang dokumen. |
selectNode() | Atur batas rentang untuk mencakup node yang ditunjuk dan semua turunannya. |
selectNodeContents() | Atur batas rentang untuk mencakup turunan node yang ditunjuk, tetapi tidak mencakup node yang ditunjuk sendiri. |
setEnd() | Atur titik akhir rentang ke node dan offset yang ditunjuk. |
setEndAfter() | Atur titik akhir rentang ke belakang node yang ditunjuk. |
setEndBefore() | Atur titik akhir rentang ke depan node yang ditunjuk. |
setStart() | Atur titik awal rentang ke offset yang ditunjuk dalam node. |
setStartAfter() | Atur titik awal rentang ke belakang node yang ditunjuk. |
setStartBefore() | Atur titik awal rentang ke depan node yang ditunjuk. |
surroundContents() | Sisihkan node yang ditunjuk ke titik awal rentang dokumen, lalu atur parent semua node dalam rentang untuk menjadi turunan dari node yang disisihkan. |
toString() | Kembalikan konten teks dari area dokumen yang ditunjuk oleh rentang. |
- Halaman Sebelumnya DOM ProcessingInstr
- Halaman Berikutnya DOM RangeException