Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Mendapatkan Offset Mula dan Tamat Pilihan dalam Bekas Induknya?

Bagaimana untuk Mendapatkan Offset Mula dan Tamat Pilihan dalam Bekas Induknya?

Patricia Arquette
Lepaskan: 2024-11-19 14:12:02
asal
172 orang telah melayarinya

How to Get the Start and End Offsets of a Selection within its Parent Container?

Dapatkan Julat Mula dan Tamat Offset Berbanding dengan Bekas Induknya

Dalam dokumen HTML, pilihan pengguna boleh merentasi elemen dan nod teks yang berbeza . Menentukan julat tepat dalam aksara dalam bekas induk pemilihan boleh menjadi mencabar. Walau bagaimanapun, kami boleh menggunakan pelbagai teknik untuk mencapai ini tanpa mengira variasi penyemak imbas.

Satu pendekatan melibatkan pengklonan julat pemilihan dan menetapkan titik penamatnya ke permulaan dan penghujung bekas induk. Dengan membandingkan kandungan teks yang terhasil dengan julat pilihan asal, kita boleh mengira offset mula dan tamat berbanding dengan induk. Berikut ialah contoh dalam JavaScript:

function getSelectionCharacterOffsetWithin(element) {
  var start = 0;
  var end = 0;
  var preCaretRange = range.cloneRange();
  preCaretRange.selectNodeContents(element);
  preCaretRange.setEnd(range.startContainer, range.startOffset);
  start = preCaretRange.toString().length;
  preCaretRange.setEnd(range.endContainer, range.endOffset);
  end = preCaretRange.toString().length;
  return { start: start, end: end };
}
Salin selepas log masuk

Kaedah ini menyediakan kedua-dua offset mula dan akhir dalam bekas induk, mengambil kira teg HTML dan traversal nod teks. Ia boleh digunakan dalam pelbagai aplikasi yang memerlukan pengimbangan aksara yang tepat, seperti alat penyuntingan teks dan skrip manipulasi kandungan.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Offset Mula dan Tamat Pilihan dalam Bekas Induknya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan