TinyMCE Editor 4.1.5版本赋值HTML内容时空格丢失问题咨询
解决TinyMCE 4.1.5中保留
/标签内空格的问题 我之前也碰到过这个问题,TinyMCE默认的HTML清理机制确实会对
和标签里的空格做多余处理,针对你用的4.1.5版本,可以试试下面这几个配置方案:明确允许预格式化标签及内容
TinyMCE默认的标签过滤规则可能会悄悄修改
/里的内容,你需要在配置里明确把这些标签加入白名单,确保它们的内容不被篡改:tinymce.init({
// 其他原有配置...
// 如果你想覆盖默认规则,用valid_elements:
valid_elements: "pre[*],code[*],h1[*],p[*],br,span[*]",
// 如果你只想扩展默认规则,用extended_valid_elements更稳妥:
// extended_valid_elements: "pre[*],code[*]"
});
这里的[*]表示允许标签的所有属性,同时别忘了把你用到的内部标签(比如例子里的
)也加进去。
开启预格式化内容的保护机制
给编辑器加上专门针对预格式化文本的配置,让它不要乱改
里的空格和换行:tinymce.init({
// 其他原有配置...
preformatted: true,
remove_linebreaks: false,
convert_newlines_to_brs: false
});
preformatted: true会告诉编辑器对
内的内容特殊处理,保留原始格式;remove_linebreaks: false避免换行被移除;convert_newlines_to_brs: false防止换行被转成
标签破坏格式。
赋值时使用原始模式(可选)
当你给编辑器设置内容的时候,可以加上format: 'raw'参数,让编辑器直接插入内容,跳过自动格式化步骤:
tinymce.get('你的编辑器ID').setContent('<pre><code><h1>Hello this is text with whiteSpace</h1> </code></pre>', {format: 'raw'});
这个方法适合插入纯代码或预格式化内容,能最大程度保留原始的空格和结构。
放宽清理规则(谨慎使用)
如果上面的方法都不生效,可以尝试关闭启动时的自动清理或HTML验证,但这会降低安全性,只在你完全信任输入内容的情况下用:
tinymce.init({
// 其他原有配置...
cleanup_on_startup: false,
verify_html: false
});
建议先尝试前三个方案,它们更安全且针对性更强。毕竟4.1.5是比较旧的版本,这些配置都是这个版本支持的功能,应该能解决你的空格被移除问题。
内容的提问来源于stack exchange,提问作者user3731362
相关产品推荐
相关产品推荐

