织梦纯文本粘贴模式开启方法
纯文本粘贴的作用
纯文本粘贴(Paste as Plain Text)是 ckeditor 提供的一种工作模式,开启后编辑器粘贴任何来源的内容(Word、Excel、其他网页)时都会先丢弃所有 HTML 标签和样式,只保留可见文字与换行符。对于织梦 DedeCMS 这类以文章为主体的站点来说,开启纯文本粘贴可以从源头避免 mso 样式污染、inline style 撑破响应式模板等顽疾。
原因分析
为什么默认没开
织梦自带 ckeditor 默认配置偏向"所见即所得",希望编辑器保留用户复制的格式,方便排版。但实际场景中,绝大多数内容来自 Word 或第三方网页,保留的格式反而与前台模板冲突。
两种模式差异
纯文本模式下,<p>、<br> 之外的所有标签都会被剔除;而"过滤粘贴"模式只剔除禁用标签,保留允许的语义标签。两者对应不同的使用场景。
开启步骤
方法一:在工具栏加 PasteText 按钮
打开 /dede/templets/article_add.htm 与 article_edit.htm,在 CKEDITOR.replace('body', {toolbar:[...]}) 中加入 PasteText 工具项:
CKEDITOR.replace('body', {
toolbar : [
['Source','Templates','Cut','Copy','Paste','PasteText','PasteFromWord','-','Print','SpellChecker'],
['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
['Bold','Italic','Underline','Strike'],
['NumberedList','BulletedList','-','Outdent','Indent','Blockquote'],
['JustifyLeft','JustifyCenter','JustifyRight'],
['Link','Unlink','Anchor','Image','Flash','Table','SpecialChar']
]
});
开启后工具栏会出现一个"纯文本粘贴"按钮,编辑点击它再 Ctrl+V 即可触发纯文本粘贴。
方法二:全局强制纯文本
打开 /include/ckeditor/config.js,加入:
CKEDITOR.editorConfig=function( config ) {
config.forcePasteAsPlainText=true;
config.pasteFilter='plain-text';
// 同时关闭 pastefromword 插件,避免被 Word 样式覆盖
config.removePlugins='pastefromword';
};
这样所有编辑器实例在 Ctrl+V 时都会自动走纯文本通道,无需手动点按钮。
方法三:替换为 UEditor 的开启方式
若站点已把编辑器换成百度 UEditor,需要在 ueditor.config.js 中设置:
,pasteplain:true //默认纯文本粘贴
,retainOnlyLabelPasted:true //仅保留标签
,filterTxtRules : function(){
return {
whiteList:{ p:{} }, //仅允许 p 标签
blackList:{ style:1,span:1,font:1,div:1 }
};
}
配置示例
注意事项
- 开启纯文本粘贴后,从 Word 复制图片会失效,编辑需走"上传图片"流程。
- 表格内容会丢失,如果业务依赖表格粘贴,建议改为"过滤粘贴"模式而非"纯文本"。
- 修改
config.js后务必强制刷新浏览器(Ctrl+F5),ckeditor 缓存极重。 - 部分定制版 DedeCMS 把 ckeditor 路径改为
/include/ckeditor_xxx/,需对应修改。 - 纯文本模式下换行处理依赖浏览器,建议在粘贴后用"格式化"按钮统一一次。
实施建议
开启纯文本粘贴是织梦内容卫生化的第一步。建议在上线后给编辑团队写一份简短操作手册:复制 Word 内容 → 切换到纯文本按钮粘贴 → 用工具栏重新套用标题、加粗、列表 → 插入图片走上传。短期会让编辑多两步操作,但长期将明显减少样式错乱、移动端字号线粗异常的投诉,让站点内容质量更稳定。