Сохранить позицию курсора в JavaScript - PullRequest
0 голосов
/ 02 января 2019

У меня есть приложение, которое исправляет текст.

window.addEventListener("keydown", function(e) {
            if (e.code == "Space") {                
                format();
            }
        }, true);

Функция format - это функция, которая анализирует значение textarea, выделяет ошибки и возвращает HTML-код отформатированной области.

function format() {
      data = {
        paragraphs: 0,
        sentences: 0,
        words: 0,
        hardSentences: 0,
        veryHardSentences: 0,
        adverbs: 0,
        passiveVoice: 0,
        complex: 0
      };

      ("use strict");     

      var text = document.querySelector('div[contenteditable][aria-label="Message Body"]').innerText;
      console.log("this is text " + text)
      let paragraphs = text.split("\n");
      let hardSentences = paragraphs.map(p => getDifficultSentences(p));
      let inP = hardSentences.map(para => `<div>${para}</div>`);
      data.paragraphs = paragraphs.length;
      OutputText = inP.join("");
      return (composeView.setBodyHTML(OutputText))
      }

Я хочу вызывать функцию format () каждый раз, когда пользователи пишут новое слово, поэтому я использую пробел для реализации этого поведения.

Что происходит, когда я вызываю функцию форматирования,курсоры идут в начале текстовой области.

Каков наилучший способ сохранить положение курсора всегда в конце текстовой области (без jQuery)?

...