2014-03-01 3 views
3

방금 ​​DOM에 삽입 한 일반 텍스트 노드가 있습니다.Rangy를 사용하여 텍스트 노드를 선택하려면 어떻게해야합니까?

Javascript 또는 Rangy를 사용하여 사용자가 마우스로 실제로 선택한 것과 동일하게 선택하고 싶습니다.

나는 다음을 (그리고 나는 꽤 추한 생각) 코드 :

 // insert as regular text node 
     var txt = document.createTextNode($mySpan.text()); 
     $myHeading.get(0).insertBefore(txt, $mySpan.get(0)); 

     // select again 
     var sel = rangy.getSelection(); 
     sel.removeAllRanges() 

     var range = rangy.createRange(); 
     range.selectNode(txt); 

내가이 어떤 도움을 사랑하는 것입니다. 나는 그것을 구현하는 방법을 모르고, 고글은 작동하지 않았다. 생각할 수있는 유일한 방법은 텍스트 사이에 2 개의 요소를 삽입 한 다음 요소를 제거한 다음 요소를 제거하는 것입니다. 그러나보다 우아한 방법이 있는지 궁금합니다.

감사합니다. 도움을 주시면 감사하겠습니다.

sel.setSingleRange(range); 

그냥 당신이 현재 가지고있는의 끝 부분에 추가 : 내 눈이 나를기만하지 않는 한

답변

5

, 코드에서 누락 된 유일한 것은이 줄 것입니다. (sel.removeAllRanges()도 삭제할 수 있습니다.)

+0

무슨 바보 ..! 나는 그것을 가지고 그것을 제거했다. : -/ 감사합니다, 루이! – nbrogi

+0

이것은 텍스트 노드뿐만 아니라 다른 노드 (내 경우에는 앵커)에서도 작동합니다. – siannopollo

관련 문제