You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级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.TinyMce NuGet包版本和Episerver 11.5保持一致,避免版本不兼容问题。
  • 如果需要针对特定编辑器实例配置(而不是默认编辑器),可以使用config.For<YourPageType>(x => x.PropertyName)来指定对应的属性进行个性化配置。

内容的提问来源于stack exchange,提问作者Eashan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:17:00