【发布时间】:2015-05-25 12:10:49
【问题描述】:
我想突出显示 html 页面中的一系列文本并获取突出显示的位置,然后用于存储 cmets。
我的问题
我有一个文章页面,允许用户突出显示选定的文本并添加评论。我已经到了可以在所选文本右侧放置一个 UI 框以输入评论的程度(想想谷歌文档)。
我需要存储有关所选文本的信息,以便可以将其链接到任何 cmets。理想情况下,我只存储选定的文本,然后扫描该选择的内容。这有一个重大缺陷:如果同一文本选择的两个或多个副本出现在内容中怎么办。
内容本身是存储在数据库中的 HTML。
例如,以下段落的选择已突出显示(粗体选择)。我需要存储有关选择的信息以便将来能够找到它:
“通过病毒式利基有效地彻底改变可互操作的人力资本。通过全球社区全面抓住世界级的潜力。客观地接受平行范式的多学科利基。专业。”
到目前为止我做了什么
使用文本选择range 的getBoundingClientRect() 可以获取到页面顶部的距离。虽然对于定位 UI 评论框很有用,但我认为这不会帮助我将 cmets 链接到他们选择的文本。
我可以从window.getSelection() 获取选定的文本,但可能会出现多次。
我不想修改内容。即如果我可以帮助它,将选择包含在 span 或类似内容中,就好像删除了评论一样,他们删除标记可能会很棘手。
【问题讨论】:
标签: javascript html dom