Tengo una div simple contenteditable con algún texto en ella. En el evento onkeyup quiero reemplazar todo el contenido (innerHTML) del div basado en regex.Cambiar la posición del cursor en la div contenteditable después de cambiar innerHTML
Por ejemplo,
HTML:
some text, more text and $even more text
función en la que el plan de i para obtener todo el texto con $ ($ siquiera en el ejemplo anterior) y se envuelve en la etiqueta span:
div.onkeypress = function() {
div.innerHTML.replace(/(some_regexp)/, "<span class='class'>$1</span>");
};
El problema es que el cursor de reemplazo salta al inicio de div. Quiero que permanezca donde estaba antes.
Imagino que tengo que guardar las coordenadas del cursor antes del cambio y de alguna manera usarlas establecer el cursor hacia atrás, pero ¿cómo puedo hacerlo? :)
Intenté guardar el objeto de rango, pero después de la edición creo que no apunta a ninguna parte.
Gracias!
¿Cómo se ve el código HTML como el reemplazo? –
He actualizado la pregunta original. si sabes cómo obtener el comportamiento esperado por otros medios sin cambiar todo HTML interno, sería genial escucharlo. –
Sé que es una vieja pregunta, pero ¿lograron encontrar una solución para esto? Estoy teniendo exactamente la misma necesidad –