How to get Cursor-position innerhalb contenteditable div mit html-Kind-Elemente?
Arbeite ich mit contenteditable div, die die Möglichkeit haben, inline-html-Elemente wie tags in den text fließen.
Auf bestimmte Punkte, die ich noch greifen Sie die Cursor-position haben aber festgestellt, dass mit dem Beispiel-code die position zurückgegeben werden, ist falsch, wenn der Cursor nach einer html-child-element.
, Brauche ich ein cross-browser-Lösung, die es mir ermöglichen, die zum speichern der position der Einfügemarke, so dass es wiederhergestellt werden kann, eine Sekunde später auch mit der Anwesenheit von html-Elementen im Textfluss.
Beispiel: http://jsfiddle.net/wPYMR/2/
- Was passiert (oder kann passieren), um den Inhalt des div-während dieser Sekunde?
- Das Letzte Wort geben können, werden entfernt und der Cursor-position korrigiert.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich beantwortet habe eine sehr ähnliche Frage hier: Bearbeiten von Iframe-Inhalten im IE - problem in der Aufrechterhaltung der text-Auswahl
Hier ist eine leicht vereinfachte version der Antwort:
Wenn Sie nicht ändern Sie den Inhalt des contenteditable-element dann die folgenden Funktionen tun. Rufen Sie
saveSelection()
bevor man das tut, was Sie tun müssen undrestoreSelection()
danach. Wenn Sie die änderung des Inhalts, ich würde vorschlagen, mit meinen Feingliedrig Bibliothek speichern/wiederherstellen-Auswahl-Modul.Beispiel verwenden:
Ich habe eine Frage über ein cross-browser-Auswahl/selection Bibliothek und fand ein paar tolle Sachen, dass ich in der Lage zu lösen, die alle meine Bedürfnisse mit.
Hier ist mein post:
Cross-Browser-Auswahl-Bibliothek?
Was hat mir geholfen, am besten war Tim das Down -feingliedrig.