Как я могу изменить это (Как установить позицию курсора (курсора) в контентном элементе (div)?), чтобы он принимал числовой индекс и элемент и устанавливает позицию курсора в этот индекс?
Например: Если бы у меня был параграф:
<p contenteditable="true">This is a paragraph.</p>
И я позвонил:
setCaret($(this).get(0), 3)
Курсор переместится на индекс 3 следующим образом:
Thi|s is a paragraph.
У меня есть это, но не повезло:
function setCaret(contentEditableElement, index)
{
var range,selection;
if(document.createRange)//Firefox, Chrome, Opera, Safari, IE 9+
{
range = document.createRange();//Create a range (a range is a like the selection but invisible)
range.setStart(contentEditableElement,index);
range.collapse(true);
selection = window.getSelection();//get the selection object (allows you to change selection)
selection.removeAllRanges();//remove any selections already made
selection.addRange(range);//make the range you have just created the visible selection
}
else if(document.selection)//IE 8 and lower
{
range = document.body.createTextRange();//Create a range (a range is a like the selection but invisible)
range.moveToElementText(contentEditableElement);//Select the entire contents of the element with the range
range.collapse(false);//collapse the range to the end point. false means collapse to end rather than the start
range.select();//Select the range (make it the visible selection
}
}