Показать сообщение отдельно
  #1 (permalink)  
Старый 09.10.2017, 17:56
Новичок на форуме
Отправить личное сообщение для health_dim Посмотреть профиль Найти все сообщения от health_dim
 
Регистрация: 09.10.2017
Сообщений: 2

Установка положения курсора в контейнере div
Добрый день!

Новичок. Изучаю Javascript.

Есть такой скрипт устанавливающий положение курсора в input Элементах (<input type="text">, <textarea>...).

<!DOCTYPE html>

<html>
  <head>
    <title>Range</title>
  </head>
  <body>
    <input id="in" type="text" value = "1111111111111111111">
  </body>
</html>
<script>
  function setSelectionRange(input, selectionStart, selectionEnd) {
  if (input.setSelectionRange) {
    input.focus();
    input.setSelectionRange(selectionStart, selectionEnd);
  }
  else if (input.createTextRange) {
    var range = input.createTextRange();
    range.collapse(true);
    range.moveEnd('character', selectionEnd);
    range.moveStart('character', selectionStart);
    range.select();
  }
}
 
function setCaretToPos (input, pos) {
  setSelectionRange(input, pos, pos);
}

setCaretToPos(document.getElementById("in"), 4);

</script>


Можно ли сделать так чтобы код работал c <div contenteditable></div>

Не срабатывает следующая строчка кода:

input.setSelectionRange(selectionStart, selectionEnd);

<!DOCTYPE html>

<html>
  <head>
    <title>Range</title>
  </head>
  <body>
    <div id="in" contenteditable>111111111111111111111</div>
  </body>
</html>
<script>
  function setSelectionRange(input, selectionStart, selectionEnd) {
  if (input.setSelectionRange) {
    input.focus();
    input.setSelectionRange(selectionStart, selectionEnd);
  }
  else if (input.createTextRange) {
    var range = input.createTextRange();
    range.collapse(true);
    range.moveEnd('character', selectionEnd);
    range.moveStart('character', selectionStart);
    range.select();
  }
}
 
function setCaretToPos (input, pos) {
  setSelectionRange(input, pos, pos);
}

setCaretToPos(document.getElementById("in"), 4);

</script>
Ответить с цитированием