3

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

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

这些是我迄今为止尝试过的想法:

  • 使用 rangy 序列化程序来序列化范围。这种方法的问题是每次添加新的评论/建议时 DOM 都会发生变化,因此不允许成功的反序列化。
  • 使用范围广泛的选择包装器并将其直接保存在数据库中,但就像上面的想法一样,目标元素的内容随着每个评论/建议而变化,这再次使该方法无法按预期工作。

任何关于我如何解决这个问题的建议都会被采纳。

4

1 回答 1

3

我没用过朗格。但这是我接近它的一种方法。

  1. 从元素中获取选定的文本(此处为教程

  2. 然后添加一个带有特定 id 的 wrapper span。(你可能想从你的服务器获取一个唯一的 id)

  3. 然后显示一个表格来输入评论。

  4. 在提交时,将 span id 和评论发送到服务器并将其存储在数据库中。

  5. 重新渲染时,您可以轻松地为该范围分配一个类以标记它并使用 css 在悬停时显示评论。

  6. 这将为您提供一个类似于 google 文档的系统,您可以在其中对文本进行评论。

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

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

于 2013-08-15T16:18:36.903 回答