入口由Paste事件來占據(jù),通過判斷占位符所在的位置,來斷定是否可以在此處粘貼。確認(rèn)可以粘貼后用,新建DIV節(jié)點(diǎn),當(dāng)作外部框架
處理DIV中的節(jié)點(diǎn)
獲取DIV中的所有子節(jié)點(diǎn)。節(jié)點(diǎn)的來源有兩種,分為文檔內(nèi)粘貼和從外部粘貼進(jìn)來。判斷若DIV中有節(jié)點(diǎn)屬于Mnote,代表粘貼來源是Mnote文檔,否則斷定粘貼來源來自外部。
一.若粘貼來源來自外部(或來自文檔內(nèi)部卻沒有CK標(biāo)識)
1.標(biāo)準(zhǔn)化
為了把標(biāo)簽統(tǒng)一,做標(biāo)簽替換,利用ckeditor的renameNode方法。
注:('<>'用html碼顯示的時(shí)候,即直接復(fù)制HTML代碼的時(shí)候,會(huì)導(dǎo)致find方法無法找到,導(dǎo)致替換失效,考慮用正則在入口處理,但會(huì)沖突正文,導(dǎo)致正文內(nèi)容被替換)
del->s
b->strong
strike->s
2.遞歸處理
//將DIV(或P,SECTION節(jié)點(diǎn)傳入,返回其子節(jié)點(diǎn))
childs = this.recurOutDiv(div);
依次處理div中的子節(jié)點(diǎn)
- 表格
- 圖片
- Format
- 局部列表
- 無序列表
- 有序列表
- DIV,P或SECTION段落
- Text文本
二.若粘貼來源來自MNote
去掉MNode的標(biāo)志,生成新的ID
將BR段落,包括列表中的BR段落,都會(huì)刪除掉。