ckeditor粘贴内容规范化


入口由Paste事件来占据,通过判断占位符所在的位置,来断定是否可以在此处粘贴。确认可以粘贴后用,新建DIV节点,当作外部框架

处理DIV中的节点

获取DIV中的所有子节点。节点的来源有两种,分为文档内粘贴和从外部粘贴进来。判断若DIV中有节点属于Mnote,代表粘贴来源是Mnote文档,否则断定粘贴来源来自外部。

一.若粘贴来源来自外部(或来自文档内部却没有CK标识)

1.标准化
为了把标签统一,做标签替换,利用ckeditor的renameNode方法。
注:('<>'用html码显示的时候,即直接复制HTML代码的时候,会导致find方法无法找到,导致替换失效,考虑用正则在入口处理,但会冲突正文,导致正文内容被替换)

del->s
b->strong
strike->s

2.递归处理

//将DIV(或P,SECTION节点传入,返回其子节点)
childs = this.recurOutDiv(div);

依次处理div中的子节点

  • 表格
  • 图片
  • Format
  • 局部列表
  • 无序列表
  • 有序列表
  • DIV,P或SECTION段落
  • Text文本

二.若粘贴来源来自MNote

去掉MNode的标志,生成新的ID
将BR段落,包括列表中的BR段落,都会删除掉。

你可能感兴趣的:(ckeditor粘贴内容规范化)