Holen Sie sich die caret-position in contenteditable div-tags eingeschlossen

Ich habe eine contenteditable div, in dem ich mehrere tags (br, b, u, i), und text und ich brauche, um die Cursor-position relativ zu dem div, inklusive aller tags.

Beispiel:

<div id="h" contenteditable="true">abc<b>def<br>ghi</b>jkl</div>

Wenn sich der cursor zwischen g und h, ich brauche die position des Einfügezeichens auf sein 14.
Das problem ist, dass die gefundenen Methoden, mit denen ein treeWalker funktionieren nicht in diesem Fall.
Der bold-tag nicht gefunden... wahrscheinlich, weil es nicht geschlossen ist.
Auch ich habe versucht, verschiedene Methoden, aber immer noch kein Glück.

Ich brauche es zum arbeiten Firefox.
Danke.

  • Warum brauchen Sie diese Zahl? Es ist im Grunde bedeutungslos, da es viele Möglichkeiten zur Darstellung der gleichen DOM mit verschiedenen HTML -, die eine Auswirkung auf die Zahl (z.B. durch die Verwendung <br /> statt <br>). Ich nehme an, Sie wollen dieses, so können Sie ein offset relativ zu der HTML-string, den Sie senden, die vom server an den browser.
  • ja... das ist genau das, warum brauche ich die Anzahl. Ich habe versucht, mehrere Mittel, aber noch keinen Erfolg.
  • Es gibt keinen Weg, um wieder die ursprüngliche HTML-string über den DOM, so müssen Sie re-request der Seite über Ajax, das Parsen der HTML-und es passen bis zu den aktuellen DOM. Es wird ziemlich schwierig sein.
InformationsquelleAutor helldrain | 2013-05-24
Schreibe einen Kommentar