У меня есть простой contenteditable div с некоторым текстом в нем.
В событии onkeyup я хочу заменить весь контент (innerHTML) div на основе регулярного выражения.
Например,
HTML:
some text, more text and $even more text
Функция, в которой я планирую получить весь текст с $ ($ даже в примере выше) и обернуть его в тег span:
div.onkeypress = function() {
div.innerHTML.replace(/(some_regexp)/, "<span class='class'>$1</span>");
};
Проблема в том, что после такой замены курсор переходит на начало div. Я хочу, чтобы он остался там, где был раньше.
Я предполагаю, что мне нужно сохранить координаты курсора перед изменением, а затем каким-то образом использовать их, чтобы вернуть курсор назад, но как я могу это сделать? :)
Я пытался сохранить объект диапазона, но после редактирования я считаю, что он указывает на никуда.
Спасибо!