我正在使用 CKEditor 4
情况如下: 我有一个选择,但我需要完成 2 个操作。 第一个操作是从选择中删除一些跨度标签。 第二个操作是在选择周围包裹一个跨度标签。 第二个操作需要通过以下操作来完成:editor.applyStyle(style);
这里的问题是第一个操作折叠了所选内容,并且由于它已折叠,因此无法用于第二个操作。
是否有 JavaScript 或 Ckeditor 相关解决方案来维护选择?
我已经尝试使用书签来维护它,并通过更改首先执行第二个操作。 但因为第二个操作正在处理跨度,所以它会删除其他跨度标签。 我希望能够控制是否删除跨度标签。
最佳答案
在像您这样的情况下,CKEditor 使用书签,但您应该知道它们有几种类型 - 普通(基于节点引用)、可序列化(基于跨度)和第三种类型(基于节点地址)。
当 DOM 更改时,最方便的是可序列化书签,但是,“使用跨度”的代码需要了解它们(它们具有特殊的 data-cke-bookmark
属性)并且不应该删除它们(但它可以例如移动它们)。
如果您要修改 DOM,没有更好的方法来记住范围。请注意,CKEditor 的方法不会破坏您的书签,除非您要删除例如整个书签的祖先。
关于javascript - CKEditor:更改选择而不丢失它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15620115/