我需要将光标设置为特定的字符偏移量。在下面的例子中,我想要,例如,将它设置在“a”和“b”之间。
<ul contenteditable = true >
<li id = "test">abcdef</li>
</ul>
我之前问过这个小提琴:http://jsfiddle.net/5a9uD/1/
这对于给定的示例以及我当时需要的内容非常有用。但它不适用于此示例:http://jsfiddle.net/mdwWN/它在
处获得IndexSizeErrorrange = sel.getRangeAt(0);
答案 0 :(得分:0)
您只需将文本容器的 childNodes[0]
传递给range.setStart
函数即可。
看看这个。
function setSelectionRange(aNode, childElem, aOffset) {
aNode.focus();
var sel = window.getSelection(),
range = sel.getRangeAt(0);
range.collapse(true);
range.setStart(childElem.childNodes[0], aOffset),
sel.removeAllRanges();
sel.addRange(range);
}
var container = document.getElementById("test");
var childElement = document.getElementById('item1');
setSelectionRange(container, childElement, 1);