我们已经有一个客户为我们即将开始的项目添加了一个新的“要求”,它给我们带来了一点点。从最终用户的角度来看,它很简单,但作为开发人员,我不知道如何实现它!
我们的用户希望用于网络表单文本框(理想情况下是富文本编辑器,例如CKEditor)来跟踪用户对内容所做的更改。请注意,这不是为了跟踪是否已进行更改,而是实际突出显示这些更改。基本上他们是在Microsoft Word的“Track Changes”功能之后!
这个想法是在用户之间发出请求,如果一个用户改变包含大量文本的文本框,下一个用户将能够轻松识别出已更改的内容。
我很想知道是否有人曾经做过类似的事情,或者有人想过是否有可能这样做?
答案 0 :(得分:0)
有人已经在这里发布了一个很好的答案:
How to highlight changes/difference in one text paragraph from the other?
答案 1 :(得分:0)
嗯...你可以将盒子的内容存储在变量中,然后使用diff算法(当然必须有一些)来检查onChange和格式的变化,但只会显示差异当用户在框外点击时。那会不够好?如果没有,您可以将onkeypress事件与onkeyup事件进行比较,并将格式应用于差异?
答案 2 :(得分:0)
嗯,你需要某种内容管理解决方案。它需要进行版本控制,以便您可以存储不同版本的内容。如果你的内容只是文字,那就不难做差异了。如果它以某种方式构建(HTML或其他格式与文本不同),则识别更改可能非常困难。
我认为在后一种情况下,您可以使用隐形标记标记新文本,例如编辑器将突出显示的<edition version="1.0"> </edition>
。您还可以为已删除的文本制作标记。并且您可以不突出显示文本,也不会将删除显示为选项。