Angular 7 переместите карету в contenteditable div - PullRequest
1 голос
/ 29 января 2020

Я занимаюсь разработкой базового c html редактора, и мне нужно добавить li к ol, когда нажата клавиша возврата. Мне удалось это сделать, но каждый раз, когда я обновляю innerhtml в моем contenteditable div, курсор сбрасывается в начальную позицию. Я бы хотел поместить каретку во вновь созданную li. Я пробовал что-то подобное, но, к сожалению, это не работает:

setCursor() {
    let el, el2, range, sel;
    el = document.getElementById('editor');
    range = document.createRange();
    sel = window.getSelection();
    if (el.childNodes.length > 0) {
      el2 = el.childNodes[el.childNodes.length - 1];
      range.setStartAfter(el2);
    } else {
      range.setStartAfter(el);
    }
    range.collapse(true);
    sel.removeAllRanges();
    sel.addRange(range);
  }

Я также пытался заменить

range.setStartAfter(el2);

на

range.setStart(el2,0);

, но все еще ничего не происходит.

У кого-нибудь есть идея заставить его работать? Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...