Как сохранить выделение при изменении содержимого элемента HTML - PullRequest
2 голосов
/ 24 июля 2011

Я хотел бы иметь возможность сохранить выбор пользователя при изменении содержимого элемента HTML.Если элемент обновляется, когда начало или конец выделения оказываются внутри, весь выбор теряется.Это также происходит при перетаскивании для создания выделения, поэтому, если пользователь перетаскивает выделение, а внутренний HTML-код элемента обновляется, когда курсор находится над элементом, пользователь должен начать заново.

У меня есть <span>, который содержит время в формате «чч: мм: сс я» и обновляется каждую секунду.Длина текста никогда не меняется, так что это не проблема.

Я попробовал следующее:

var s = window.getSelection();
if (!s.isCollapsed) {
    var range = document.createRange();
    range.setStart(s.anchorNode,s.anchorOffset);
    range.setEnd(s.focusNode,s.focusOffset);
}

document.getElementById('time').innerHTML = new Date().toString();

if (typeof range != 'undefined') { s.removeAllRanges(); s.addRange(range); }

Это лучшее, что мои исследования дали, но это не таккажется, что это что-то меняет.

Что я должен сделать, чтобы предотвратить исчезновение выделения, если оно начинается или заканчивается в этом диапазоне?

1 Ответ

0 голосов
/ 24 июля 2011

Вам нужно снова установить выбор: range.selectNodeContents(newNode);

newNode = document.getElementById("[span id]");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...