【问题标题】:javascript contenteditable: set cursor at character offsetjavascript contenteditable:将光标设置在字符偏移处
【发布时间】:2013-06-25 20:52:08
【问题描述】:

我需要将光标设置在特定的字符偏移处。在下面的示例中,例如,我想将其设置在“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);

【问题讨论】:

标签: javascript contenteditable


【解决方案1】:

您只需将文本容器的 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

【讨论】:

    猜你喜欢
    • 2013-04-12
    • 1970-01-01
    • 2010-11-13
    • 1970-01-01
    • 2011-02-21
    • 2012-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多