@Shimpanze

Почему после обработки возвращается тройное содержимое?

Добрый день!

Адаптирую функцию, которая выполняет замену в выделенном фрагменте.

function add_left_2_indent() {
  var div = document.querySelector('.entry-content');

  var selStart = div.selectionStart,
        selEnd = div.selectionEnd;

  var slection = div.innerHTML.substring(selStart, selEnd);

  if (slection) {
    var replaced = slection.replace(/^([^\r\n][\s\S]*?)$/gm, "  $1");
    div.innerHTML = div.innerHTML.substring(0, selStart) + replaced + txval.substring(selEnd, txval.length);
    selEnd = selStart + replaced.length;
  }

  div.setSelectionRange(selStart, selEnd);
}


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

Как это исправить?

P.S. У контейнера прописан contenteditable="true"
  • Вопрос задан
  • 62 просмотра
Решения вопроса 1
@vaajnur
веб-программист
удали этот говнокод нафиг и возьми это
function add_left_2_indent(div) {
  var div = document.querySelector('.entry-content');

  var text = div.innerHTML

  selection = window.getSelection();
  var substr1 = selection.toString()

  var newstr =   text.replace(substr1  , '123' )

    div.innerHTML = newstr
}

 var div = document.querySelector('.entry-content');
 div.addEventListener('click' , function(){
    add_left_2_indent()
 })
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Biganto Москва
от 130 000 до 130 000 руб.
от 2 500 до 4 000 usd.
HTML Academy Москва
от 85 000 до 100 000 руб.
16 авг. 2018, в 12:52
100000 руб./за проект
16 авг. 2018, в 12:43
3000 руб./за проект
16 авг. 2018, в 12:11
100 руб./за проект