2014-03-06 30 views
1

如何將CKEditor的高級內容過濾器應用於字符串?我想攔截使用editor.on('粘貼',...)粘貼的內容,獲取其ACF篩選的值,然後將我自己的轉換應用於篩選的值。在這之後,如果它再次通過ACF運行,那就沒關係了。將CKEditor高級內容過濾器應用於字符串

回答

4

我最近報了一張票,我想你會發現有趣的:http://dev.ckeditor.com/ticket/11621。這個功能很可能會在CKEditor 4.5中引入。 (編輯:此功能得到CKEditor 4.5 - CKEDITOR.config.pasteFilter)。

至於你的問題 - 以ACF應用到HTML字符串,你需要:

  1. 使用CKEDITOR.htmlParser.fragment.fromHtml()解析它。
  2. 在上一步創建的文檔片段上調用filter.applyTo。您可以使用標準editor.filter或使用不同的設置創建您自己的實例。
  3. 將文檔片段序列化回HTML字符串。

例如:

// Create standalone filter passing 'p' and 'b' elements. 
var filter = new CKEDITOR.filter('p b'), 
    // Parse HTML string to pseudo DOM structure. 
    fragment = CKEDITOR.htmlParser.fragment.fromHtml('<p><b>foo</b> <i>bar</i></p>'), 
    writer = new CKEDITOR.htmlParser.basicWriter(); 

filter.applyTo(fragment); 
fragment.writeHtml(writer); 
writer.getHtml(); // -> '<p><b>foo</b> bar</p>' 
+1

非常有幫助!非常感謝你! –