Ich habe contentEditable Element (kann p, div, ...) und ich möchte Caret (Cursor) Position in es zu erhalten. Ich kann es normalerweise mit diesem Stück Code erreichen:
var position = window.getSelection().getRangeAt(0).startOffset;
Dies funktioniert gut, solange das Element nur Text enthält. Wenn das Element jedoch eine HTML-Formatierung enthält, ist die zurückgegebene Position relativ zur Position der Einfügemarke im enthaltenen HTML-Element.
Nehmen wir an, der Inhalt des contentEditable-Elements ist dieser:
AB<b>CD</b>EF
Wenn der Cursor innerhalb von <b></b>
Sagen wir, zwischen C und D, ist die zurückgegebene Position mit obigem Code 1 statt 3 (gezählt vom Anfang des Inhalts des contentEditable-Elements)
Kann jemand eine Lösung für dieses Problem finden?