升级Episerver至11.5后,TinyMCE的EditMenuName CSS属性失效如何解决?
解决Episerver 11.5升级后TinyMCE自定义下拉菜单项名称失效的问题
刚升级Episerver到11.5就碰到TinyMCE自定义菜单项名称失效的问题?我之前也帮人排查过这个情况,其实是Episerver对TinyMCE的集成逻辑做了调整,原来的EditMenuName属性确实不再被默认识别了,换个配置方式就能解决,具体步骤如下:
1. 通过代码自定义TinyMCE格式配置
Episerver 11.5之后,需要通过C#代码来显式配置TinyMCE的格式及对应菜单项名称,而不是依赖CSS里的特殊注释属性。你可以按照以下步骤操作:
- 首先在项目中创建一个初始化模块类,用来扩展TinyMCE的配置:
using EPiServer.Cms.TinyMce.Core; using EPiServer.Framework; using EPiServer.Framework.Initialization; [InitializableModule] [ModuleDependency(typeof(TinyMceInitialization))] public class CustomTinyMceSetup : IConfigurableModule { public void ConfigureContainer(ServiceConfigurationContext context) { // 配置TinyMCE默认编辑器 context.Services.Configure<TinyMceConfiguration>(config => { config.Default() // 添加自定义格式,这里可以添加多个 .AddFormats(new Format { Title = "自定义按钮名称", // 这里就是下拉菜单要显示的名称 Classes = "your-custom-css-class", // 对应要应用的CSS类 Inline = "span" // 根据需求选择元素类型,比如span、div、p等 }, new Format { Title = "另一个自定义项", Classes = "another-custom-class", Block = "div" }); }); } public void Initialize(InitializationEngine context) { } public void Uninitialize(InitializationEngine context) { } } - 这段代码里的
Title字段就是你原来用EditMenuName想要设置的自定义名称,配置后下拉菜单会直接显示这个标题,而不是CSS类名。
2. 移除旧的EditMenuName配置
如果之前你是通过在CSS文件中添加类似/* EditMenuName: 自定义名称 */的注释来设置的,现在可以把这些注释移除了,因为Episerver 11.5之后不再解析这种方式的配置,所有自定义格式都要通过上面的C#代码来定义。
3. 验证配置生效
完成代码修改后,部署更新后的项目,清理浏览器缓存(避免旧配置残留),重新打开Episerver的内容编辑界面,打开TinyMCE的格式下拉菜单,就能看到你设置的自定义菜单项名称了。
额外注意事项
- 确保项目引用的
EPiServer.Cms.TinyMceNuGet包版本和Episerver 11.5保持一致,避免版本不兼容问题。 - 如果需要针对特定编辑器实例配置(而不是默认编辑器),可以使用
config.For<YourPageType>(x => x.PropertyName)来指定对应的属性进行个性化配置。
内容的提问来源于stack exchange,提问作者Eashan
相关产品推荐
相关产品推荐

