1

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

我正在选择带有 的文本window.getSelection,但是 AFAIK 这并没有给我任何关于所选文本(或元素)的索引或放置数据。

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

谢谢

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

4

1 回答 1

2

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

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

此外,由于您要将此作为 Chrome 扩展程序,我只建议使用 HTML5 Web Storage 来记住选择。

于 2013-02-24T23:32:30.187 回答