Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Выделить, сохранить выделение, и восстановить его (https://javascript.ru/forum/css-html/70894-vydelit-sokhranit-vydelenie-i-vosstanovit-ego.html)

SiriusED 10.10.2017 14:38

Выделить, сохранить выделение, и восстановить его
 
Есть такой html:
<div ng-bind-html="textCtrl.text"></div>


Это простой `<div>` контейнер, в котором расположен текст html-текст.

Цепочка действий которую мне нужно реализовать:
1. Пользователь выделяет текст мышкой
2. Нажимает правую кнопку, и в контекстном меню(уже реализовано) выберает `Mark`
3. Я сохраняю в БД позицию выделения, и меняю цвет фона под этим выделением
4. Обновляю страницу
5. Получаю с БД позицию выделения и восстанавливаю его после загрузки страницы

Проблема у меня начинается с пункта #3, я не пойму как мне сохранить позицию выделения что бы потом выделить в точном месте еще раз этот текст, после одновления страницы например, или если я захочу использовать этот `div` в другом месте(свплывающее окно например).

Каким то может быть образом можно получить `offset` от начала этого div'а и потом как то восстановить это выделение по этому оффсету, или как это грамотно сделать?

рони 10.10.2017 16:15

Цитата:

Сообщение от SiriusED
`offset` от начала этого div'а

anchorOffset/focusOffset
selection

SiriusED 10.10.2017 23:16

Цитата:

Сообщение от рони (Сообщение 467096)
anchorOffset/focusOffset
selection

Я такое пробовал, и там получается этот анкор идет не от родительского контейнера а от сложенного, и оффсет не верный считает...

Как сделать что бы все работало и выделялось относительно контейнера в котором вложенные все другие divы?

рони 10.10.2017 23:52

SiriusED,
может сохранять не позицию, а всё содержимое? вопрос только, как вы собрались менять фон?


Часовой пояс GMT +3, время: 00:18.