2011-03-04 8 views
0

작은 mce에서 노드를 선택해야합니다. 다음 코드를 시도하고 있습니다. 그것은 비 IE 브라우저에서 작동하지만 IE에서이 같은 오류를 제공 - 오류 : 개체가IE8에서 selectNode()가 작동하지 않습니다.

코드가이 속성 또는 메서드를 지원하지 않습니다 -

   rng = ed.selection.getRng(); 
       rng.selectNode(tn); 

두 번째 줄은 오류가 발생합니다. 거기에 다른 IE와 호환되는 방법이 있습니까?

답변

0

이유는받는 범위 객체가 다릅니다. FF에서는 selectNode()과 같은 몇 가지 기능을 제공하는 객체를 얻습니다. IE 범위는 속성 만 포함하는 텍스트 범위 개체를 제공합니다.

이에 대한 해결책

은 간단합니다 :

// true is important here - causes getRng to return a DOM Range and not a text range (IE) 
rng = ed.selection.getRng(true); 
rng.selectNode(tn); 
+1

selectNode가 TextRange 개체의 메서드에 나열되어 있지 않습니다. 테스트하고 발견했는데 오류가 발생하지 않았지만 원하는대로 작동하지 않습니다. 감사합니다 – KutePHP

+0

그건 내가 방금 대답했다. getRng (true)를 사용하면 텍스트 범위가 아닌 DOM 범위를 받게됩니다! 어느 것이 당신이 원하는지입니다. – Thariama

0

나는 TextRange 개체에 대해 읽고 내가 의도 할 수 있었다. 내 커서를 범위 안에 넣고 싶었습니다.

range.moveToElementText (node); //node is the span in which I wanted to place my cursor 
range.select(); 

moveToElementText을 - - 나는 다음과 같이 TextRange 개체의 속성과 메서드를 사용하여 할 수 지정된 요소의 텍스트 내용 현재 TextRange 객체의 시작점과 끝점을 정렬합니다. nbsp을 추가했습니다. 스팬에 위의 코드를 사용하면 내 캐럿으로 대체 할 수 있습니다.

+0

왜 selectNode 함수에 대해서 물어 보지만 왜 캐럿의 위치를 ​​묻지 않습니까? – Thariama

관련 문제