2013-06-28 1 views
0

커서를 특정 문자 오프셋으로 설정해야합니다. 아래 예에서 "a"와 "b"사이에 설정하고 싶습니다.javascript contenteditable : 커서를 문자 오프셋으로 설정

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

내가 전에 질문이 바이올린 가지고 : http://jsfiddle.net/5a9uD/1/

주어진 예를 들어 내가 다음을 위해 그것을 필요로하는 것에 대해 큰했다. 그러나이 예제에서는 작동하지 않습니다 : http://jsfiddle.net/mdwWN/텍스트 컨테이너의childNodes[0]range.setStart에 기능을 전달하는

당신은 단지이
range = sel.getRangeAt(0); 
+0

중첩 된 HTML 요소와 함께 작동하는보다 일반적인 솔루션의 경우이 대답과 같은 것을 시도 할 수 있습니다. http://stackoverflow.com/a/16100733/96100 –

답변

0

에서 IndexSizeError을 가져옵니다. 확인해보세요.

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 : 환영합니다! –

관련 문제