從Word粘貼時,Ckeditor 4中的清理通常非常好。不過我注意到兩件事情,當Word文檔不理想的格式:Ckeditor 4 - 刪除nbsp; <p></p>從word粘貼後
如果Word文檔中包含「
」這個被複製爲在CKEDITOR。我想簡單地在貼上插入「」。
從Word粘貼往往創建「
<p> </p>
」。我已經通過使用fillEmptyBlocks = false
部分解決了這個問題,這意味着我剩下了「<p></p>
」。
我不知道如何添加額外的JavaScript函數來擴展Ckeditor的功能來解決這些問題。 Ckeditor 4提供了一個高級內容過濾器,但文檔對我來說很坦然,而且不清楚它是否可以實現上述目標。
這是我目前CKEDITOR config.js:
CKEDITOR.editorConfig = function(config) {
config.toolbar = <removed>;
config.format_tags = 'p;h2;h3;div';
config.contentsCss = '/css/site.min.css';
config.height = 500;
config.removePlugins = 'elementspath';
config.resize_enabled = false;
config.allowedContent = true;
config.fillEmptyBlocks = false;
};
我已經嘗試此CKEDITOR 3式的方法,這似乎並沒有工作。 evt.data.dataValue
確實包含編輯器的HTML。
CKEDITOR.on('instanceReady', function(ev) {
ev.editor.on('paste', function(evt) {
evt.data.dataValue = evt.data.dataValue.replace(' ','');
evt.data.dataValue = evt.data.dataValue.replace('<p></p>;','');
console.log(evt.data.dataValue);
}, null, null, 9);
});
答案必須包括通過某種形式的Ckeditor在粘貼事件,與Ckeditor交互的功能或通過ACF進行此項工作。請不要在保存PHP的時候提出這樣的建議,我認爲這是最後的手段,並且能夠自己做到這一點。
謝謝!
您的意思是Word中的實際文本類似於「這是一個實體的示例: 」?在這種情況下,將其保留爲文本是正確的。或者當粘貼 得到生成的內容?對我來說,我用'config.removePlugins ='elementspath,entities'處理這個問題,但那只是因爲我真的不想要任何實體,這可能對你沒有用。 – Nenotlep
Word文檔有時包含nsbp(看起來像空格),粘貼時在Ckeditor源視圖中顯示爲' '。雖然Word真的有問題,但我只是將其視爲Ckeditor粘貼階段的自定義清理階段。 – Ben
在這種情況下不會 實際上是正確的?如果你不想要實體,我會再次完全刪除實體插件。我將我的內容保存爲Unicode XML,因此對於我來說,實體實際上完全分解了內容。據我所知,ACF在這裏不能幫你,因爲它不會觸及內容,並且有部分內容。 – Nenotlep