如何配置旧版Tinymce使其不剥离JavaScript代码?
解决旧版TinyMCE剥离script标签属性、添加CDATA的问题
针对你遇到的旧版TinyMCE修改Constant Contact嵌入代码的问题,按以下步骤调整配置(优先修改初始化配置,避免直接修改核心JS文件,防止版本更新覆盖):
调整初始化配置参数
找到网站中TinyMCE.init()的配置代码(通常在mce_init.js或页面内的script标签中),添加/修改以下配置项:TinyMCE.init({ // 保留原有配置,新增以下内容 cleanup: false, cleanup_on_startup: false, verify_html: false, // 允许script标签及所需属性 valid_elements: "*[*],script[src|id|async|defer|type|charset]", extended_valid_elements: "script[src|id|async|defer|type]", // 禁止给script标签添加CDATA cdata_elements: "", // 保留脚本的完整src路径(不剥离域名) remove_script_host: false, // 关闭粘贴时的自动清理(如果启用了paste插件) paste_auto_cleanup_on_paste: false });修正核心文件的错误设置
若你之前修改过mce_serializer.js中的valid_elements为<em>[</em>],这个设置会强制过滤除em标签外的所有元素,必须改回正常配置,比如:valid_elements: "*[*],script[src|id|async|defer|type|charset]"验证配置生效
保存修改后清空浏览器缓存,重新打开编辑器嵌入Constant Contact代码,提交后检查代码是否被保留:<script> var _ctct_m = "32ee443d65507d7f14ad26d121f10e50"; </script> <script id="signupScript" src="//static.ctctcdn.com/js/signup-form-widget/current/signup-form-widget.min.js" async defer></script>
注:旧版TinyMCE(如3.x系列)的配置逻辑依赖初始化参数覆盖默认值,直接修改核心JS文件容易出现配置不生效的情况,优先通过TinyMCE.init()传入配置。
内容的提问来源于stack exchange,提问作者Antiquated
相关产品推荐
相关产品推荐

