Ich habe eine contenteditable div in denen ich mehrere Tags (br, b, u, ich) und Text und ich muss die Caret-Position relativ zum div, einschließlich aller Tags zu bekommen .Holen Sie sich Caret-Position in contenteditable div einschließlich Tags
Zum Beispiel:
<div id="h" contenteditable="true">abc<b>def<br>ghi</b>jkl</div>
Wenn sich der Cursor zwischen g und h ist, muss ich die Position der Einfügemarke 14. Das Problem ist, dass die gefundenen Methoden, die einen TreeWalker verwenden, funktionieren nicht in diesem Fall . Das Fett-Tag wurde nicht gefunden ... wahrscheinlich, weil es nicht geschlossen ist. Auch ich habe mehrere Methoden ausprobiert aber immer noch kein Glück.
Ich brauche es in Firefox zu arbeiten. Danke.
Warum brauchen Sie diese Nummer? Es ist im Wesentlichen bedeutungslos, da es viele Möglichkeiten gibt, dasselbe DOM mit unterschiedlichem HTML zu repräsentieren, was sich auf die Zahl auswirkt (z. B. durch Verwenden von "
" anstelle von "
"). Ich gehe davon aus, dass Sie dies möchten, damit Sie einen Offset relativ zu der HTML-Zeichenfolge erhalten können, die Sie vom Server an den Browser senden. –
ja ... genau deshalb brauche ich die nummer. Ich habe mehrere Mittel versucht, aber immer noch keinen Erfolg. – helldrain
Es gibt keine Möglichkeit, die ursprüngliche HTML-Zeichenfolge über das DOM zurückzuerhalten. Daher müssen Sie die Seite erneut über Ajax anfordern, den HTML-Code analysieren und ihn dem aktuellen DOM zuordnen. Es wird ziemlich schwierig werden. –