我很好奇聽到別人對我一直在考慮一段時間的問題的意見。Javascript,Text Annotations and Ideas
本質上,我想向用戶展示一個文本文檔,並允許他/她選擇文本並對其進行註釋。具體到註釋我的目標是實現以下目標:
- 允許用戶進行文本選擇,批註,然後保存選擇和註釋參考代表重疊的註釋後
- (UI)的支持。例如,如果字符串其中:「這是我的示例測試句子的測試語句」,則user1可能在「是我的示例的測試語句」上註釋,而user2可能在「我的示例」上註釋了註釋。
- 考慮文檔文本更改的情況。如果可能的話,註釋將被更新。
如何從技術角度解決這個問題?
有些想法我已經是:
- 使用JavaScript範圍和註釋存儲爲一對整數是這樣的:(document_start_char,document_end_char)。將這對保存在數據庫中。
- 或者,使用JS獲取選定的文本,並實際將全文保存在數據庫中。 (不知道我將如何做重疊的註釋)
- 通過應用css風格突出顯示文本,然後使它們重疊的註釋的「堆棧」變暗來表示重疊的註釋。最小的註釋總是必須位於「堆棧」的頂部。
您的想法或改進方面有哪些? 我可以在不破壞所有註釋的情況下支持正在更新的文檔文本嗎?
我有完全相同的要求。請讓我們更新我們的進度SP – swami
即時在做什麼是周圍的每個單個字符與唯一的ID。我使用Rangy(http://code.google.com/p/rangy/)來獲取選擇,然後提取ID,以便我確切地知道選擇了哪些字符。這樣做可以讓我獲得一些自由,因爲我已經完成了選擇並且可以在幕後做一些特殊的事情,比如計算一個字符在註釋套件中被註釋了多少次,並相應地調整它的背景顏色(以表示重疊選擇)。 –
噢,我忘了一件事......我還沒有想出如何處理文檔本身被編輯時更新所有註釋,但我在想,一個好方法可能是將文檔分成獨特的段落或句子或類似的東西。在這種情況下隔離損害將是目標,但它不是完美的。 –