Javascript:在数据库中获取和保存文本选择范围

我正在为客户端构建语法检查器系统,用户可以在其中向给定的文本添加注释/建议.当用户选择一些文本时,将出现一个按钮,用于为该给定的文本选择创建注释/建议.当我想将文本选择范围以及注释/建议保存到数据库中时,就会出现我的问题.

我目前正在尝试使用Rangy(http://rangy.googlecode.com/)解决问题.

这些是我到目前为止尝试过的想法:

>使用rangy序列化器序列化范围.问题所在
这种方法是每次新的DOM都会改变
添加了注释/建议,因此不允许
成功的反序列化.
>使用范围选择包装器并将其直接保存在
数据库,但是像上面的想法一样,目标元素的内容是
随每个评论/建议而变化,这再次使方法
不能按预期工作.

关于如何解决此问题的任何建议都将适用.

解决方法:

我没用过兰吉.但是,这是我处理它的一种方式.

>从元素中获取选定的文本(tutorial here)
>然后添加具有特定ID的包装范围. (您可能想从服务器获取唯一的ID)
>然后显示一个表单以输入评论.
>在“提交”上,将范围ID和注释发送到服务器,并将其存储在数据库中.
>重新渲染时,您可以轻松地为该范围分配一个类以对其进行标记,并使用css在悬停时显示注释.
>这将为您提供一个类似于google document的系统,您可以在其中对文本进行注释.

让我知道是否有帮助,或者您需要更多有关如何完成各个步骤的说明.

这样做的好处是您不需要将选定的文本发送回服务器或担心序列化.只是包裹您的span的ID.

上一篇:javascript-修改选择,选择单词,然后重新附加脱字号的位置


下一篇:Vscode 快捷键操作部分