javascript - CKEditor:更改选择而不丢失它

标签 javascript ckeditor

我正在使用 CKEditor 4

情况如下: 我有一个选择,但我需要完成 2 个操作。 第一个操作是从选择中删除一些跨度标签。 第二个操作是在选择周围包裹一个跨度标签。 第二个操作需要通过以下操作来完成:editor.applyStyle(style);

这里的问题是第一个操作折叠了所选内容,并且由于它已折叠,因此无法用于第二个操作。

是否有 JavaScript 或 Ckeditor 相关解决方案来维护选择?

我已经尝试使用书签来维护它,并通过更改首先执行第二个操作。 但因为第二个操作正在处理跨度,所以它会删除其他跨度标签。 我希望能够控制是否删除跨度标签。

最佳答案

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

当 DOM 更改时,最方便的是可序列化书签,但是,“使用跨度”的代码需要了解它们(它们具有特殊的 data-cke-bookmark 属性)并且不应该删除它们(但它可以例如移动它们)。

如果您要修改 DOM,没有更好的方法来记住范围。请注意,CKEditor 的方法不会破坏您的书签,除非您要删除例如整个书签的祖先。

关于javascript - CKEditor:更改选择而不丢失它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15620115/

相关文章:

javascript - 通过 ID 在集合中查找用户。允许在 Meteor 中表现非常奇怪

javascript - React Hook 函数组件防止重新渲染

javascript - 使用 Javascript 提交表单

file-upload - 如何在具有跨域支持的 CKEditor 中添加自定义文件上传按钮

javascript - 不知道为什么这段代码给我一个错误。 "i"好像没有定义,谁能解释一下

javascript - 使用 karma 测试多个 dom

javascript - <br/> 标签自动添加到 ckeditor 中的 html 标签中

javascript - 内联编辑但实例不存在

ruby-on-rails-3.2 - 导轨 : ReferenceError: CKEDITOR is not defined

javascript - 将 flash 插件与内联 ckeditor 一起使用