TYPO3 12与CKEditor 5:移除<td>标签多余属性和样式
TYPO3 12中CKEditor移除Word复制表格
<td>多余style属性的解决方法 问题场景
从格式复杂的MS Word文档复制内容到CKEditor字段,保存后多数标签属性已被清理,但仍有残留:
- 复制带背景色、自定义内边距的Word表格后,生成的
<td>标签保留大量冗余style属性(如背景色、内边距样式) - 现有CKEditor配置已能移除
<p>标签样式,但<td>标签的样式未被清理 - 使用编辑器“清除格式”按钮、设置
styles:false均无效
需求:仅保留<td>标签的width样式属性,移除其余所有style属性。
解决步骤
1. 通过TSconfig配置后端HTML过滤
在TYPO3的用户/页面级别TSconfig中,定制RTE的HTML解析规则,精准过滤<td>的属性:
RTE.default.proc { entryHTMLparser_db { tags.td { allowedAttribs = width,rowspan,colspan fixAttribs.width { trim = 1 stripFunc = htmlspecialchars } } } HTMLparser_db { tags.td { allowedAttribs = width,rowspan,colspan } } }
该配置强制<td>仅保留width、rowspan、colspan属性,其余属性(包括冗余style)会被自动清理。
2. 补充CKEditor前端内容过滤规则
如果TSconfig过滤不够彻底,可在自定义CKEditor配置中追加内容过滤逻辑:
在Configuration/JavaScript/CKEditor/Config.js中添加:
CKEDITOR.editorConfig = function(config) { config.extraAllowedContent = 'td[width]'; config.disallowedContent = 'td{*}; td[!width]'; };
extraAllowedContent指定允许<td>保留width属性,disallowedContent禁止<td>的所有style属性及非width属性。
3. 验证配置生效
修改后需完成以下操作:
- 清除TYPO3系统缓存
- 刷新CKEditor页面,重新复制Word表格内容测试
内容的提问来源于stack exchange,提问作者seirerman
相关产品推荐
相关产品推荐

