TinyMCE 4处理Outlook适配邮件模板时忽略HTML格式的解决方案问询
TinyMCE保留Outlook MSO条件注释的解决方案
TinyMCE默认的内容过滤规则会清除注释类内容,包含Outlook专用的MSO条件注释,可通过修改初始化配置解决:
配置protect规则保留条件注释
在TinyMCE的初始化参数中新增protect配置项,用正则匹配所有MSO条件注释格式,标记为编辑器无需处理的保留内容:
tinymce.init({ // 你原有的其他配置,比如挂载的选择器、工具栏配置等 selector: '#your-editor', // 新增保留条件注释的配置 protect: [ /<!--\[if[\s\S]*?\[endif\]-->/g ] })
上述正则会匹配所有以<!--[if开头、[endif]-->结尾的内容块,包括你提到的<!--[if !mso]>...这类Outlook专用注释,不会被编辑器过滤或修改。
补充配置适配其他邮件专属标签(可选)
如果你的邮件模板还用到了Outlook专属的VML标签、mso-前缀的样式属性,可额外添加以下配置放开过滤规则:
tinymce.init({ // 原有配置和上述protect配置保留 allow_conditional_comments: true, // 允许v:开头的VML自定义标签 custom_elements: 'v:*', // 放开VML标签、style标签的属性限制 extended_valid_elements: 'v:*,style[*],script[*]', // 允许所有mso-前缀的样式属性 valid_styles: { '*': 'mso-*' } })
操作注意事项
配置生效后,需要通过TinyMCE自带的源码编辑功能插入MSO条件注释,不要直接修改编辑器对应的原始textarea内容,避免触发二次过滤。
上述配置兼容TinyMCE 4及以上所有版本
内容的提问来源于stack exchange,提问作者Mo Sadeghi
相关产品推荐
相关产品推荐

