Javascript,文本注释和想法

Mar*_*tto 12 javascript user-interface annotations document text-parsing

我很好奇听到别人对我一直在考虑的问题的意见.

基本上我想向用户提供文本文档,并允许他/她选择文本并对其进行注释.具体到注释我的目标是实现以下目标:

  1. 允许用户进行文本选择,对其进行注释,然后保存选择和注释以供日后参考
  2. (UI)表示重叠注释的支持.例如,如果字符串在其中:"这是我的示例测试句子的测试句子",则user1可能具有"是我的示例的测试句子"的注释,而user2可能在"for my example"上有注释.
  3. 考虑文档文本更改的情况.如果可能,将更新注释.

您如何从技术角度解决这个问题?

我的一些想法是:

  • 使用javascript范围并将注释存储为一对整数,例如:(document_start_char,document_end_char).将该对保存在数据库中.
  • 或者,使用JS获取所选文本并实际保存db中的全文.(不知道我将如何重叠注释)
  • 通过应用css样式来突出显示文本,然后使注释的"堆叠"变暗,从而表示重叠的注释.最小的注释总是必须位于"堆栈"的顶部.

您有什么想法或改进方面?如何赫克可我支持文档的文本没有打破所有的注释被更新?

小智 5

我正在研究同样的问题,我个人赞成不要自己动手,而是支持像Annotator这样的现有开源库.


Jos*_*eti 3

http://mark.koli.ch/2009/09/use-javascript-and-jquery-to-get-user-selected-text.html(404响应)

http://mark.koli.ch/2009/09/05/get-selected-text-javascript.html-(404响应)

获取选定的文本非常简单。存储它(或其起点/终点)也是一个笑话。但是你的第三点呢?如果文本发生变化怎么办?

如果文本发生更改,原始文本和您存储的原始选择坐标将不等于当前修改的文本。您应该注意文本文档中存在的注释,以便每次更改时,都应该更新或删除引用该特定更改文本的注释(也许在快速比较之前和之后的文本之后:有一些缺少单词?或者只是纠正了一些单词?),但这似乎确实是一项艰巨的任务。

我认为将整个文本注释存储在数据库中是至关重要的,以避免它被更改和注释丢失。这样您仍然可以获得注释的完整文本。那么你还应该使用一种排序标志来指示注释的起始字符,如果文本发生变化,你可以计算变化之前的文档文本和变化之后的文档文本的字符差异,并通过这种方式找到原始注释的新起点(假设文档文本的注释部分未更改)。

将文本文档分成尽可能多的段落也应该有所帮助,这样您就可以将文档的不同部分分开并逐一进行处理。

现在我真的很想看到它完成!:)