Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как получить и установить начало и конец выделения? (https://javascript.ru/forum/misc/21605-kak-poluchit-i-ustanovit-nachalo-i-konec-vydeleniya.html)

FINoM 17.09.2011 05:30

Как получить и установить начало и конец выделения?
 
У меня есть див с атрибутом contenteditable и некоторым текстом. Человек выделяет текст и, например, нажимает на какую-нибудь кнопку, при этом теряется фокус в диве. Затем, после нажатия, выделение нужно восстановить. Причем, должно работать в IE8 и, желательно IE7.

К сожалению, информация в интернете разбросана по кускам, поэтому приходится довольствоваться чем есть. Пока что есть код, который должен работать в нормальных браузерах, но почему-то кидает исключение:

//получение данных о выделении для его восстановления
selection = document.getSelection();
range = selection.getRangeAt(0);
startNode = range.startContainer.parentNode;
endNode = range.endContainer.parentNode;
startOffset = range.startOffset;
endOffset = range.endOffset;

//установка такого же выделения
range = document.createRange();
range.setStart(startNode,startOffset); //исключение здесь "INDEX_SIZE_ERR: DOM Exception 1"
range.setEnd(endNode,endOffset); //и, соответственно здесь, если убрать предыдущую строку

Помогите, пожалуйста, разобраться с этим исключением и созданием кода с аналогичным функционалом, но для IE.

Спасибо.

tenshi 18.09.2011 14:04

> range.startContainer.parentNode;
parentNode нафига?

https://github.com/nin-jin/jam/blob/...m+DomRange.jam
смотри функции create и select

FINoM 20.09.2011 05:49

Цитата:

Сообщение от tenshi
смотри функции create и select

Пардон, что это вообще за язык? Моё непонимание исходит из первой строки:
with( $jam )
Ключевое слово — функция?

x-yuri 23.09.2011 05:22

Цитата:

Сообщение от FINoM
Пардон, что это вообще за язык?

надо полагать, tenshiscript :)

FINoM 26.09.2011 00:12

Я один не понял шутку? :D

x-yuri 26.09.2011 03:09

судя по всему да... это javascript, если что

FINoM 26.09.2011 05:46

Всё равно не понял :D

Kolyaj 26.09.2011 12:10

Там просто дикое форматирование.

FINoM 26.09.2011 21:05

Это да.

FINoM 30.09.2011 20:45

Нашел решение: http://stackoverflow.com/questions/1...323835#3323835


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