我想在浏览器中检索当前所选文本的xpath。使用JavaScript我能够获取所选文本,但无法获取xpath。
我可以使用Firebug手动找到xpath,但我想以编程方式进行。有可能吗?
[编辑]好的,找到了指向此thread中解决方案的指针。修改了该线程中的代码以满足我的需求。
答案 0 :(得分:1)
如果选择跨越多个DOM元素,那么路径是什么呢?
我认为你不能从getSelection()(或document.selected)中获取所选的DOM元素。
您可以尝试为mousedown和mouseup设置文档范围的事件处理程序。在mousedown上,您将元素存储在指针下并在mouseup上检查是否有选择。
下一步是生成该元素的路径。这也很tricky。
答案 1 :(得分:0)
脱离我的头脑 - 但是通过使用XSL循环遍历每个祖先,你可以建立XPath。
for each ancestor::* { newXPath = concat (local-name(.), [current_node_postion], previousGeneratedXPath)}
通过每个祖先进行递归并构建完整的XPath。