ckeditor粘貼內(nèi)容規(guī)范化


入口由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ì)刪除掉。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容