2009-09-14 46 views
1

我想在瀏覽器中檢索當前選定文本的xpath。使用JavaScript我能夠獲得選定的文本,但無法獲取xpath。在瀏覽器中檢索所選文本的xpath

我可以使用Firebug手動找到xpath,但我想以編程方式進行。可以做到嗎?

[編輯]好的,找到了一個指向這個thread解決方案的指針。修改該線程中的代碼以符合我的需求。

回答

1

如果選擇跨越幾個DOM元素,那麼路徑是什麼?

我不認爲你可以從getSelection()(或document.selected)中獲取選定的DOM元素。

您可以嘗試爲mousedown和mouseup設置文檔範圍事件處理程序。在mousedown上,您將該元素存儲在指針下,並在mouseup上檢查是否有選擇。

下一步將生成該元素的路徑。這也相當於tricky

+0

「如果選擇跨越多個DOM元素,該路徑將會怎樣?」 - 這是一個很好的觀點。我沒有想過。但截至目前,我可以假設用戶只會選擇節點內的文本。 – Sudar 2009-09-14 09:26:37

0

關閉我的頭頂 - 但通過使用XSL遍歷每個祖先,您可以構建XPath。

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

遞歸遍歷每個祖先並構建完整的XPath。