Holen Sie die Einfügemarke (Cursor) in contentEditable Bereich, der HTML-Inhalt enthält

Habe ich contentEditable-element - (p, div, ...) und ich würde gern an der Einfügemarke (cursor -) position. In der Regel kann ich es erreichen, mit diesem Stück code:

var position = window.getSelection().getRangeAt(0).startOffset;

Dies funktioniert sehr gut, während das element enthält nur text. Aber, wenn das element enthält einige HTML-Formatierungen, die zurückgegebene position ist relativ zur position der Einfügemarke innerhalb enthalten HTML-element.

Nehmen wir an, die Inhalte des contentEditable-element ist dieses:

AB<b>CD</b>EF

Wenn caret-Zeichen innerhalb <b></b>sagen wir zwischen C und D, die zurückgegebene position mit obigen code ist 1 anstelle von 3 (gezählt vom Anfang des contentEditable-element-content)

Kann jemand kommen mit Lösung ?

InformationsquelleAutor der Frage Frodik | 2011-01-22

Schreibe einen Kommentar