Переместить курсор в текстовую область в начальную позицию после значения настройки - PullRequest
0 голосов
/ 22 июня 2019

HTML:

<textarea id="text-box" size="20"></textarea>
<button onclick="selectText()">Get Content</button>

JavaScript:

function selectText() {
  var txtArea = document.getElementById('text-box');
  txtArea.value = "Some Text";
  txtArea.focus();
  console.log(txtArea.value.length)

  var sel = window.getSelection();
  var range = sel.getRangeAt(0);

  console.log('range.collapsed',range.collapsed)

  range.collapse(true);
}

Приведенный выше код указывает, что диапазон уже свернут, а вновь установленный контент не выбран. Курсор находится в конце содержимого. Я хочу, чтобы курсор был установлен в начале содержимого. Если я установлю выделение для всего содержимого, а затем попытаюсь свернуть его, следующий код не будет работать.

Пробовал:

function selectText() {
  var txtArea = document.getElementById('text-box');
  txtArea.value = "Some Text";
  txtArea.focus();
  console.log(txtArea.textContent.length)

  txtArea.setSelectionRange(0, txtArea.value.length);

  var sel = window.getSelection();
  console.log(sel.rangeCount)

  sel.collapseToStart();//Doesn't work

  //Also tried the following
  //var range = sel.getRangeAt(0);
  //range.collapse(true);
}

1 Ответ

0 голосов
/ 22 июня 2019

Я пробую код sel.collapseToStart(), и он работает нормально.Так что, возможно, это проблемы совместимости.Какой браузер вы используете?

https://codepen.io/gwtjs/pen/qzrJbp

...