Heim > Web-Frontend > js-Tutorial > Wie erhalte ich den Start- und Endversatz einer Auswahl innerhalb ihres übergeordneten Containers?

Wie erhalte ich den Start- und Endversatz einer Auswahl innerhalb ihres übergeordneten Containers?

Patricia Arquette
Freigeben: 2024-11-19 14:12:02
Original
145 Leute haben es durchsucht

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

Start- und Endoffsets eines Bereichs relativ zu seinem übergeordneten Container abrufen

In HTML-Dokumenten kann sich die Benutzerauswahl über verschiedene Elemente und Textknoten erstrecken . Es kann schwierig sein, den genauen Zeichenbereich im übergeordneten Container der Auswahl zu bestimmen. Wir können jedoch verschiedene Techniken nutzen, um dies unabhängig von Browservarianten zu erreichen.

Ein Ansatz besteht darin, den Auswahlbereich zu klonen und seine Endpunkte auf den Anfang und das Ende des übergeordneten Containers zu setzen. Durch den Vergleich der resultierenden Textinhalte mit dem ursprünglichen Auswahlbereich können wir den Start- und Endversatz relativ zum übergeordneten Text berechnen. Hier ist ein Beispiel in 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 };
}
Nach dem Login kopieren

Diese Methode stellt sowohl den Start- als auch den Endoffset innerhalb des übergeordneten Containers bereit und berücksichtigt dabei HTML-Tags und Textknotendurchquerung. Es kann in einer Vielzahl von Anwendungen eingesetzt werden, die präzise Zeichenversätze erfordern, wie z. B. Textbearbeitungstools und Inhaltsbearbeitungsskripts.

Das obige ist der detaillierte Inhalt vonWie erhalte ich den Start- und Endversatz einer Auswahl innerhalb ihres übergeordneten Containers?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage