我知道这里发布了一些类似的问题,但似乎没有人回答我的问题(或者可能是我不太理解这个概念)。我一开始想在CKeditor实例中获取并设置插入符号的位置(问题就在这里)。在帮助下,我明白了我需要使用范围和偏移来实现这个目标。
然而,我现在的问题是,我不知道如何将这个位置保存在某个地方,可能是数据库,并恢复插入符号的位置。你可以想象一个用户修改文档并保存它。当他回来继续编辑时,应该加载文档,并将插入符号返回到最后一个已知的位置。
所以,在javascript中从CKeditor中获取插入符号位置,这没关系。我可以获取我的范围对象。但是我该如何保存它呢?如何将其发送到服务器进行存储?我该如何取回?作为一根绳子?是否有序列化和反序列化范围或dom节点的机制?
谢谢你的帮助!
是否有序列化和反序列化范围或dom节点的机制?
CKEditor 4中有一种称为bookmarks
的机制。您可以使用CKEDITOR.dom.range.createBookmark
,它基本上为当前范围(选择)创建一个书签,然后可以通过CKEDITOR.dom.range.moveToBookmark
恢复。
为了使书签可序列化(这样您就可以将整个内容保存到DB中,然后在加载内容时恢复选择),您必须像createBookmark( true )
一样将true
传递给creatBookmark
,这表明书签节点必须包含ID,ID可以用于恢复范围。