入口由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段落,都会删除掉。