Показать сообщение отдельно
  #1 (permalink)  
Старый 27.02.2023, 12:21
Интересующийся
Отправить личное сообщение для allonemoon Посмотреть профиль Найти все сообщения от allonemoon
 
Регистрация: 07.04.2015
Сообщений: 18

Select, range как работать с ними?
День добрый! Приведу сразу свой код.

function optionStyleText(style, tag) {

    selText = document.getSelection();
    anchorOffset = selText.anchorOffset;
    focusOffset = selText.focusOffset;
    node = document.getSelection();
    textSel = document.getSelection().toString();

     const tagDecorText = document.createElement(tag);
          tagDecorText.setAttribute('class', style);

        let range = new Range(); //создаю диапазон
                range.setStart(textNode.firstChild, anchorOffset);
                range.setEnd(textNode.lastChild, focusOffset);

                content = range.extractContents();
                tagDecorText.innerHTML = textSel;
                range.deleteContents(); 
                range.insertNode(tagDecorText);
               
                document.getSelection().removeAllRanges();
                document.getSelection().addRange(range);
}


если передаю тег b и класс то все устанавливается. Текст выделенный становится жирным и присваивается класс. А как обработать снятие? На мысль приходит одно нужно условие проверки, обернут текст или нет в какой-либо тэг? Подскажите направление хоть куда копать? п.с. и можете объяснить принцип работы getAtRange, а то не догоняю слегка его
Ответить с цитированием