contenteditable texte sélectionné d'enregistrer et de restaurer

Je suis tombé sur ce post qui montre 2 fonctions sur la façon de sauvegarder et de restaurer le texte sélectionné dans un contenteditable div. J'ai le dessous de la div définir comme contenteditable et la 2 fonction de l'autre post. Comment puis-je utiliser ces fonctions pour enregistrer et restaurer le texte sélectionné.

<div style="width:300px;padding:10px;" contenteditable="true">test test test test</div>

<script>
function saveSelection() {
    if (window.getSelection) {
        sel = window.getSelection();
        if (sel.getRangeAt && sel.rangeCount) {
            return sel.getRangeAt(0);
        }
    } else if (document.selection && document.selection.createRange) {
        return document.selection.createRange();
    }
    return null;
}

function restoreSelection(range) {
    if (range) {
        if (window.getSelection) {
            sel = window.getSelection();
            sel.removeAllRanges();
            sel.addRange(range);
        } else if (document.selection && range.select) {
            range.select();
        }
    }
}
</script>
Vous devez utiliser les méthodes de l'objet Range (voir mozilla doc: developer.mozilla.org/en/DOM/range ). Fondamentalement, une gamme composée d'un nœud et le décalage dans ce nœud. Un moyen pour enregistrer le code HTML ainsi que la gamme est d'utiliser des "signes" (voir la Fermeture de la Bibliothèque pour trouver des idées: closure-library.googlecode.com/svn/docs/... ).

OriginalL'auteur Hussein | 2011-01-14