У меня есть contentEditable DIV, и когда пользователь нажимает клавишу, базовый код обрабатывается и заменяется обновленным кодом.Увы, это приводит к потере позиции курсора.
Однако, чтобы сохранить позицию курсора, я успешно вставляю <span id="placeholder"></span>
в DIV в правильном положении перед началом обработки.Это сохраняет предполагаемую позицию курсора, но теперь я не могу установить диапазон для его выбора.
Вот что у меня сейчас есть:
function focusOnPlaceholder() {
var placeholder = document.getElementById('placeholder');
if( !placeholder ) return;
var sel, range;
if (window.getSelection && document.createRange) {
range = document.createRange();
range.selectNodeContents(placeholder);
range.collapse(true);
sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
} else if (document.body.createTextRange) {
range = document.body.createTextRange();
range.moveToElementText(placeholder);
range.select();
}
}
Любая помощь будет оценена, икросс-браузерное решение было бы невероятно:)