2013-06-28 93 views
0

我需要將光標設置爲特定的字符偏移量。在下面的例子中,我想,例如,將其設置在「a」和「b」之間。javascript contenteditable:將光標設置爲字符偏移量

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

我問過和得到這個小提琴:http://jsfiddle.net/5a9uD/1/

在給定的例子,什麼我需要它,然後偉大的工作。不過,這並不與這個例子的工作:http://jsfiddle.net/mdwWN/它得到的IndexSizeError在

range = sel.getRangeAt(0); 
+0

有關嵌套HTML元素的更一般解決方案,您可以嘗試這樣的答案:http://stackoverflow.com/a/16100733/96100 –

回答

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

+0

@ user984003:歡迎! – 2013-06-28 07:01:28

相關問題