2009-09-14 5 views
1

브라우저에서 현재 선택된 텍스트의 xpath를 가져 오려고합니다. JavaScript를 사용하여 선택한 텍스트를 가져올 수 있지만 xpath를 가져올 수 없습니다.브라우저에서 선택한 텍스트의 xpath 검색

방화범을 사용하여 수동으로 xpath를 찾을 수 있지만 프로그래밍 방식으로하고 싶습니다. 그것을 할 수 있습니까?

[편집] 좋아, 해결책에 대한 포인터를 찾았습니다 thread. 내 필요에 맞게 코드를 수정했습니다.

답변

1

선택 항목이 여러 DOM 요소에 걸쳐있는 경우 경로는 무엇입니까?

getSelection() (또는 document.selected)에서 선택한 DOM 요소를 가져올 수 있다고 생각하지 않습니다.

mousedown 및 mouseup을 위해 문서 전체 이벤트 핸들러를 설정할 수 있습니다. mousedown에서 포인터 아래에 요소를 저장하고 mouseup에 선택 항목이 있는지 확인합니다.

다음 단계는 해당 요소에 대한 경로를 생성하는 것입니다. 그것도 꽤 tricky입니다.

+0

"선택 항목이 여러 DOM 요소에 걸쳐 있으면 경로는 무엇입니까?" - 그게 아주 좋은 지적이야. 나는 그것에 대해 생각하지 않았다. 하지만 지금은 사용자가 노드 내부의 텍스트 만 선택한다고 가정 할 수 있습니다. – Sudar

0

XSL을 사용하여 각 조상을 반복하면서 XPath를 구축 할 수 있습니다.

for each ancestor::* { newXPath = concat (local-name(.), [current_node_postion], previousGeneratedXPath)} 

각 조상을 통해 반복하고 완전한 XPath를 작성하십시오.

관련 문제