javascript内容可编辑:将光标设置为字符偏移量

javascript contenteditable: set cursor at character offset

本文关键字:设置 光标 字符 偏移量 编辑 javascript      更新时间:2023-09-26

我需要将光标设置在特定的字符偏移处。在下面的例子中,例如,我想将它设置在"a"answers"b"之间。

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

我之前问过,得到了这把小提琴:http://jsfiddle.net/5a9uD/1/

这对给定的例子和我当时需要的东西都很有效。但它不适用于此示例:http://jsfiddle.net/mdwWN/上出现IndexSizeError

range   = sel.getRangeAt(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);

这是正在工作的小提琴。