我要做的是允许用户在页面上选择一段文本并突出显示它,然后能够加载此选择并在进一步访问时重新突出显示它(使用纯客户端JavaScript,我打算将来将其打包成Chrome扩展程序。)
我选择window.getSelection
的文字,但是AFAIK这并没有给我任何关于所选文字(或元素)的索引或展示位置数据。
我目前唯一能想到的方法是记录实际文本并搜索它,但这会引发唯一性问题(同一文本字符串很可能在给定页面上多次出现)。有没有办法向上遍历DOM树并将'path'存储到包含元素(然后只需要担心该元素中的唯一性)?如果没有更好的方法,我会很高兴。
由于
编辑:我现在正在做的事情与此类似:http://jsfiddle.net/e3XX6/
答案 0 :(得分:2)
您是否检查了selection
方法返回的getSelection()
对象?例如,它具有anchorNode
属性,而该属性又具有parentElement
属性。最后一个属性将告诉您包含文本的元素。
查看这个版本的小提琴(打开你的控制台!):http://jsfiddle.net/e3XX6/1/
此外,由于您要将其设为Chrome扩展程序,我建议您使用HTML5网络存储来记住选择。