2012-05-12 3 views
0

내가 선택한 텍스트를 iframe 내부에서 가져와야하는 프로젝트에서 작업 중입니다. 선택한 텍스트 자체가 iframe 내부의 여러 스팬을 통과 할 수 있습니다. 텍스트 자체를 가져올 필요는 없지만 어떤 스팬이 텍스트 교차를했는지 알아야합니다. , 모든 범위는 1에서부터 페이지 끝까지의 ID를 갖기 때문에 id 속성을 통해 모두 액세스 할 수 있습니다. 선택한 텍스트가 교차하는 모든 범위의 ID를 가져 오는 것입니다. 그러나 Google을 둘러 보았지만 그렇지 않았습니다. 같은 문제가 여기에JQuery 선택한 텍스트가 교차하는 요소를 가져 오는 방법은 무엇입니까?

+0

가 아닌 경우 * 응답 *을, 그래서 나는거야 댓글 : 크로스 브라우저를 선택하는 것은 힘들며 Tim Down의 [Rangy] (http://code.google.com/p/rangy/)와 같은 라이브러리를 사용하는 것이 좋습니다. –

+0

자바 스크립트 window.getSelection을 사용하여 선택 자체를 가져올 수 있지만 선택된 텍스트 만 가져옵니다. html 자체를 포함하여 선택한 텍스트를 가져올 수 있다면 결과를 구문 분석하여 아이디를 가져올 수 있기 때문에 문제가 해결 될 것입니다. 그 중에서도, 나는 여전히 그것을 조사하고있다 – Ronin

+0

콘텐츠를 얻기 위해 어떤 JS 코드를 사용하고 있습니까? – Arnaud

답변

0

로 사람을 찾을하면 선택한 취득해야하지만 자신의 범위, IE < 9 제외한 모든 주요 브라우저에서 작동하는 범위 내에서 노드를 얻기위한 대답 :

https://stackoverflow.com/a/7931003 다음과 같이 크로스 브라우저 솔루션을

, 당신은 iframe라는 변수에 당신은 iframe에 대한 참조가 가정 내 Rangy 라이브러리를 사용할 수 있습니다

var sel = rangy.getIframeSelection(iframe); 
if (sel.rangeCount > 0) { 
    var range = sel.getRangeAt(0); 
    var spans = range.getNodes([1], function(element) { 
     return element.tagName.toLowerCase() == "span"; 
    }); 
    // spans is now an array of selected or partially selected <span> 
    // elements. Spans inside other spans are not included. 
} 
+0

감사합니다. 시도해 보겠습니다. – Ronin

관련 문제