CKEditor:更改选择而不会丢失它

时间:2013-03-25 16:37:28

标签: javascript ckeditor

我正在使用CKEditor 4

以下是这种情况: 我有一个选择,但我需要完成2个动作。 第一个操作是从选择中删除一些span标记。 第二个动作是围绕选择包装span标记。 第二个动作需要通过以下动作完成:editor.applyStyle(style);

这里的问题是第一个操作折叠了选择,因为它已折叠,所以它不适用于第二个操作。

是否有与javascript或Ckeditor相关的解决方案来维持选择?

我已经尝试使用Bookmarks维护它,并通过更改先执行第二个操作。 但是因为第二个动作正在使用跨度,所以它会删除其他跨度标记。 我想让控件说明是否会删除span标记。

1 个答案:

答案 0 :(得分:2)

在像您这样的情况下,CKEditor使用书签,但您应该知道它们的种类很少 - 正常(基于节点引用),可序列化(基于跨度)和第三种类型(基于节点地址)。

当DOM更改时,最方便的是可序列化的书签,但是,您的代码"适用于跨度"需要注意它们(它们具有特殊的data-cke-bookmark属性)并且不应该删除它们(但它可以移动它们。)

如果您正在修改DOM,则没有更好的方法来记住范围。请注意,除非您要删除书签,否则CKEditor的方法不会销毁您的书签。整本书签'祖先。