用户界面-Javascript,文本注释和想法



我很想听听别人对我思考了一段时间的问题的意见。

本质上,我想向用户展示一个文本文档,并允许他/她选择文本并对其进行注释。具体到注释,我的目标是实现以下内容:

  1. 允许用户进行文本选择,对其进行注释,然后保存选择和注释以供以后参考
  2. (UI(支持表示重叠的注释。例如,如果字符串where:"This is the test sentence For my example test senten",user1可能在"is the test pentence For my example"上有注释,user2可能在"For my example"上有注解
  3. 说明文档文本发生更改的情况。如果可能的话,将更新注释

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

我的一些想法是:

  • 使用javascript范围并将注释存储为一对整数,例如:(document_start_char,document_end_char(。将这对保存在数据库中
  • 或者,使用JS选择文本并将全文保存在数据库中。(不确定我会如何进行重叠注释(
  • 通过应用css样式来突出显示文本,然后将重叠的注释"堆栈"变暗,来表示重叠的注释。最小的注释必须始终位于"堆栈"的顶部

你有什么想法或需要改进的地方?heck如何支持在不破坏所有注释的情况下更新文档的文本?

我正在研究同样的问题,就我个人而言,我喜欢远离自己的滚动,而喜欢像Annotator这样的现有开源库。

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响应(

获取选定的文本真的很容易。存储它(或它的起点/终点(也是一个笑话。但是你的第三点呢?如果文本发生更改怎么办?

如果文本发生更改,则存储的原始文本和原始选择坐标都不会等于当前修改的文本。您应该注意文本文档中存在的注释,这样每当它发生更改时,引用更改后的特定文本的注释都应该更新或删除(可能是在前后文本之间进行快速比较之后:是缺少了一些单词?还是只更正了一些词?(,但这似乎真的是一项艰巨的任务。

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

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

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

相关内容

  • 没有找到相关文章

最新更新