我想做的事 :
-> 向用户显示纯 HTML 页面 -> 用户能够突出显示该页面上的文本-> 当用户下次登录时,我应该能够检索并在页面上显示他之前的(多个)突出显示。
我做了什么 :
我使用了库/API:Rangy。有了这个我可以选择文本并用用户喜欢的颜色突出显示它。
问题 :
我尝试了序列化和反序列化功能,但是当我尝试反序列化(重新加载页面后)它给我一个错误说
序列化范围根节点 (ec0c8cf0) 和目标根节点 (d4997863) 的校验和不匹配
每次我重新加载页面时,都会有一个新的根节点,在这种情况下我该如何修复反序列化?
创建了一个 JS-Fiddle:demo / js-fiddle
这是什么 - 如果你查看我的演示,我选择描述的第一个词,即“请”,我得到突出显示的文本,我也得到序列为:
0/3/1/3/0/1/1/2:9,0/3/1/3/0/1/1/2:9{b3002d92}
所以我所做的是,我对这个序列进行了硬编码,并将其放入页面 onLoad 函数中的 deserializeSelection 函数中,如下所示:-
rangy.deserializeSelection('0/3/1/3/0/1/1/2:9,0/3/1/3/0/1/1/2:9{b3002d92}');
所以从技术上讲,它应该在描述中突出显示“请”,无论何时加载页面,但它没有,而是在块中给我上述错误。你能帮我解决这个问题吗?请。谢谢
额外的:
1.我真的不明白rangy的序列化和反序列化方法。
2.我从这里开始的非常抽象的路线图是,在页面加载时执行 AJAX 调用,并从我的数据库中获取此页面的所有(序列化)用户选择,然后遍历它们并进行反序列化。
任何帮助将非常感激。谢谢你。