javascript contenteditable:将光标设置为字符偏移量

时间:2013-06-28 06:36:13

标签: javascript contenteditable

我需要将光标设置为特定的字符偏移量。在下面的例子中,我想要,例如,将它设置在“a”和“b”之间。

<ul contenteditable = true >
    <li id = "test">abcdef</li>
</ul>

我之前问过这个小提琴:http://jsfiddle.net/5a9uD/1/

这对于给定的示例以及我当时需要的内容非常有用。但它不适用于此示例:http://jsfiddle.net/mdwWN/它在

处获得IndexSizeError
range   = sel.getRangeAt(0);

1 个答案:

答案 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);

这是working fiddle