Javascript - Cursorposition in contenteditable div speichern und wiederherstellen

Wir sammeln alle Infos der Bonusepisode von Pokémon Karmesin und Purpur für euch!

Zu der Infoseite von „Die Mo-Mo-Manie“
  • Huhu >.<
    Ich verzweifel jetzt seit heute morgen an folgendem Problem:


    Ich habe eine div, die auf contenteditable gestellt ist.

    Code
    <div contenteditable="true" class="highEditor" id="highE">Inhalt von div</div>


    Jetzt hab ich mit Javascript eine Funktion gewerkelt die den Text a) ausliest, b) bearbeitet c) per JQuery ($("#highE").html(endText); ) wieder in das div schreibt.



    Schön und gut, klappt soweit.


    ABER:
    Nachdem es geprüft wurde (Alle 1,5 Sekunden oder auf Wunsch per checkbox eben pro onchange) springt der Caret(Blinkendes Cursorteil) zurück auf die Anfangsposition des div.
    Ich hatte schon soweit die Idee vor dem Bearbeiten die Cursorposition auszulesen & nach dem Schreiben eben wieder zu setzen.
    Dabei ergab sich a) dass es dafür getSelection oder Ranges braucht b) dass die browser im bezug darauf sehr besch... äh verschieden sind.. und c) dass Google nichts brauchbares geliefert hat.
    Auslesen der Position (bzw des Offsets) hab ich per window.getSelection.focusOffset geschafft.
    Setzen der Position hab ich nix zustande gebracht.
    Ich will es jetzt erstmal soweit bekommen, dass es im FF funktioniert.


    Und:
    Ich weiß, was ich da benutze ist pfui, nicht standardkonform etc.
    Aber es muss in einem Div-contenteditable klappen.


    mfg
    NullPointerException