如何在页面上记录文字的位置?

时间:2013-02-24 23:14:05

标签: javascript jquery google-chrome dom google-chrome-extension

我要做的是允许用户在页面上选择一段文本并突出显示它,然后能够加载此选择并在进一步访问时重新突出显示它(使用纯客户端JavaScript,我打算将来将其打包成Chrome扩展程序。)

我选择window.getSelection的文字,但是AFAIK这并没有给我任何关于所选文字(或元素)的索引或展示位置数据。

我目前唯一能想到的方法是记录实际文本并搜索它,但这会引发唯一性问题(同一文本字符串很可能在给定页面上多次出现)。有没有办法向上遍历DOM树并将'path'存储到包含元素(然后只需要担心该元素中的唯一性)?如果没有更好的方法,我会很高兴。

由于

编辑:我现在正在做的事情与此类似:http://jsfiddle.net/e3XX6/

1 个答案:

答案 0 :(得分:2)

您是否检查了selection方法返回的getSelection()对象?例如,它具有anchorNode属性,而该属性又具有parentElement属性。最后一个属性将告诉您包含文本的元素。

查看这个版本的小提琴(打开你的控制台!):http://jsfiddle.net/e3XX6/1/

此外,由于您要将其设为Chrome扩展程序,我建议您使用HTML5网络存储来记住选择。