Ich habe eine einfache contenteditable div mit etwas Text drin. On onkeyup Ereignis Ich möchte den gesamten Inhalt (innerHTML) des div basierend auf Regex ersetzen.Ändern Sie die Cursorposition im contenteditable div nach dem Ändern von innerHTML
Zum Beispiel
HTML:
some text, more text and $even more text
Funktion, in der ich plane, den gesamten Text mit $ ($ sogar in Beispiel oben) und es in Span-Tag wickeln zu erhalten:
div.onkeypress = function() {
div.innerHTML.replace(/(some_regexp)/, "<span class='class'>$1</span>");
};
Das Problem ist nach solchen Ersatz-Cursor springt an den Anfang des div. Ich möchte, dass es dort bleibt, wo es vorher war.
Ich stelle mir vor, ich muss die Koordinaten des Cursors vor der Änderung speichern und dann irgendwie setzen sie den Cursor zurück, aber wie kann ich es tun? :)
Ich habe versucht, Bereich Objekt speichern, aber nach der Bearbeitung glaube ich, dass es nirgends hinweist.
Danke!
Was den Ersatz HTML nicht aussehen? –
Ich habe die ursprüngliche Frage aktualisiert. Wenn Sie wissen, wie Sie erwartetes Verhalten auf andere Weise erreichen können, ohne das ganze innereHTML zu ändern - wäre es toll zu hören. –
Ich weiß, es ist eine alte Frage, aber hast du eine Lösung dafür gefunden? Ich habe genau das gleiche Bedürfnis –