Установка положения курсора в контейнере 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>
|
health_dim,
<!DOCTYPE html>
<html>
<head>
<title>Range</title>
</head>
<body>
<div id="in" contenteditable>111111111111111111111</div>
<script>
function setCaretToPos(elem, pos) {
var range = document.createRange();
var sel = window.getSelection();
range.setStart(elem.childNodes[0], pos);
range.collapse(true);
sel.removeAllRanges();
sel.addRange(range);
}
setCaretToPos(document.getElementById("in"), 4);
</script>
</body>
</html>
|
Огромное спасибо!
Пытался разобраться по https://learn.javascript.ru/range-textrange-selection Верны ли комментарии: range.collapse(true); // граничные точки в одном месте кода sel.removeAllRanges(); //строку можно опустить т.к. в общем-то выделения кода не было sel.addRange(range); //установка курсора |
Цитата:
|
| Часовой пояс GMT +3, время: 15:08. |