我想要做的是允許用戶選擇頁面上的一段文字並突出顯示它,然後能夠加載該選擇並在進一步訪問時重新突出顯示它(純粹用客戶端JavaScript,我打算將來將其打包成Chrome擴展程序)。如何記錄文本在頁面上的位置?
我選擇的文字爲window.getSelection
,但AFAIK這並沒有給我任何關於所選文字(或元素)的索引或位置數據。
我現在想到的唯一方法是記錄實際文本並搜索它,但這會引發唯一性問題(相同的字符串可能會在給定頁面上出現多次)。有沒有一種向上遍歷DOM樹並將「路徑」存儲到包含元素(然後只需擔心該元素內的唯一性)的方法?如果沒有更好的方法,我會很高興。
感謝
編輯:什麼,我現在做的是類似於這樣:http://jsfiddle.net/e3XX6/
你打算如何保持他們選擇的狀態?或者是你的問題? – Brad 2013-02-24 23:17:16
你可以顯示你目前使用的代碼來獲取這個字符串嗎?代碼在你的問題中很有用,[現場演示](http://jsfiddle.net/)會更有用。 – 2013-02-24 23:18:14
布拉德:我試圖找出一種保持狀態(知道文本重新選擇在隨後的頁面加載) @DavidThomas感謝您的建議,增加了一個jsfiddle – Zen 2013-02-24 23:27:17