ersetzen innerHTML in contenteditable div

muss ich implementieren highlight für zahlen( in Zukunft im komplexer Regeln ) in der contenteditable div. Das problem ist, Wenn ich neue Inhalte einfügen mit javascript ersetzen, DOM-änderungen und contenteditable div-Element den Fokus verloren. Was ich brauche, ist Fokus auf den div mit der Einfügemarke auf der aktuellen position, also können Benutzer geben Sie einfach, ohne Probleme und meine Funktion einfache Hervorhebung zahlen. Googeln um mich zu entscheiden, dass Feingliedrig Bibliothek ist die beste Lösung. Ich habe folgenden code:

function formatText() {

              var savedSel = rangy.saveSelection();
              el = document.getElementById('pad');
              el.innerHTML = el.innerHTML.replace(/(<([^>]+)>)/ig,"");
              el.innerHTML = el.innerHTML.replace(/([0-9])/ig,"<font color='red'>$1</font>");
              rangy.restoreSelection(savedSel);
          }

<div contenteditable="true" id="pad" onkeyup="formatText();"></div>

Das problem ist, nach der Funktion Ende die Arbeit konzentrieren sich wieder auf das div, aber Cursor immer am div beginnen, und ich kann geben überall, execept div beginnen. Auch die Konsole.log-Typen werden folgende Rangy warning: Module SaveRestore: Marker element has been removed. Cannot restore selection.
Bitte helft mir, dies umzusetzen funktionsfähig. Im offen für andere solutiona, nicht nur feingliedrige Bibliothek. Danke!

http://jsfiddle.net/2rTA5/ Dies ist jsfiddle, aber Sie funktionieren nicht richtig(es passiert nichts, wenn ich tippte die zahlen in mein div), keine Ahnung, vielleicht ist es mir (zum ersten mal post-code per jsfiddle) oder Ressource nicht unterstützen contenteditable.
UPD* Im Lesen ähnliche Probleme auf stackoverflow, aber die Lösungen nicht passen zu meinem Fall 🙁

Es ist ziemlich schwer zu verstehen deine Frage, vielleicht können Sie setzen, eine demo unter: jsfiddle.net
beziehen Sie sich auf die caret-position durch eine chance?
ich poste meinen code in der js-fiddle, siehe mein Beitrag. Als ich es bekommen, das ist, was restoreSelection tun. Bibliothek merken Cursor-position und restauriert.

InformationsquelleAutor Petya petrov | 2011-04-08

Schreibe einen Kommentar