2017-08-07 29 views
0

我想要在編輯器中粘貼文本並寫入時使用不同的格式化樣式。 但是,當我定義enterMode : CKEDITOR.ENTER_BR時,它也適用於粘貼的文本,並刪除粘貼的文本格式和標籤。即它覆蓋了pasteFilter: 'semantic-content'行爲。CKEditor同時允許pasteFilter和enterMode

有什麼辦法可以保持兩種?

以下是我的配置:

editor = CKEDITOR.replace("annotationEditor", { 
     toolbarGroups: [ 
     { name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] } 
     ], 
     removePlugins : 'uploadimage', 
     pasteFilter: 'semantic-content', 
     enterMode : CKEDITOR.ENTER_BR, 
     /*shiftEnterMode: CKEDITOR.ENTER_P,*/ 
     extraPlugins : 'maxlength', 
     removeButtons : removeButtons, 
     pasteFromWordRemoveFontStyles: false, 
     autoParagraph : false 
    }); 

我試過以下爲好,但沒有工作:

CKEDITOR.instances['annotationEditor'].on('key', function(e) { 
     e.editor.on('change', function (event){ 
      if(e.data.keyCode == 13){ // Do this code when ENTER is pressed 
       CKEDITOR.config.enterMode = CKEDITOR.ENTER_BR; 
       CKEDITOR.config.forceEnterMode = true; 
      } 
     }); 
    }); 

回答

0

我想不同的格式類型,而粘貼在編輯器中,並同時書面文本。

如果你想使用enterMode設置爲BR並粘貼豐富的內容,那麼如果你的ACF設置允許所有要粘貼的標籤,我會建議使用paste event聽衆以非常低的優先級和dontFilter標誌設置爲true (你也可以在那個過濾器中做一些自己的過濾)。如果這不起作用,我想不出有任何其他的辦法。

另一方面,如果您想要例如enterMode設置爲P,並且您要粘貼格式如BR模式的內容,您可以使用forcePasteAsPlainText設置與pasteFromWord,afterPasteFromWord,afterPaste,paste等事件一起進行一些額外的過濾。