Показать сообщение отдельно
  #2 (permalink)  
Старый 13.10.2022, 22:06
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

Вышел на финишную прямую). Осталось решить с одной ф-цией. Итак. Выделяю слово. Кликаю на ссылку и передаю это слово в текстовое поле. Там получаю координаты начала и длину выделенного слова. Редактирую слово и отправляю на сохранение.

function saveText(start,sellected_ln) {

//start - координата начала слова(выделенного)
//sellected_ln - длина слова(выделенного)

    var editor = document.querySelector('#select-text'); // текстовое поле
    var new_text = editor.value; // отредактированное слово
    var new_text_ln = new_text.length;

all_text = document.getElementById('value_2');// контейнер статьи
old_text = $(all_text).html(); // изначальный текст
old_sel = old_text.substr(start,sellected_ln)

new_text = setCharAt(old_text,start,new_text,new_text_ln);

}


И теперь, если так:

function setCharAt(str,index,chr,new_text_ln) {
    if(index > str.length-1) return str;
    return str.substring(0,index) + chr + str.substring(index+new_text_ln);
}


то новый текст заканчивается на изменённом слове. Как правильно написать + str.substring(index+new_text_ln) что бы оно выводило оставшийся текст?
Ответить с цитированием