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

FullCalendar V4升级:事件标题HTML渲染失效求助

解决FullCalendar V4中渲染带HTML的事件标题问题

我之前升级FullCalendar时也踩过这个坑,V3到V4的API变化确实挺多,尤其是事件渲染这块的逻辑改得比较彻底。你原来依赖的eventRender方法在V4里已经被移除了,这就是为什么添加旧代码后会触发加载错误;而移除后HTML显示成纯文本,是因为V4默认会自动转义事件内容。

下面是适配V4的完整代码,直接替换你原来的配置即可:

document.addEventListener('DOMContentLoaded', function() {
  const calendarEl = document.getElementById('calendars');

  const calendar = new FullCalendar.Calendar(calendarEl, {
    events: '/activities/calendar.json',
    contentHeight: 750,
    displayEventTime: false,
    headerToolbar: { // V3的header配置在V4中更名为headerToolbar
      left: '',
      center: 'title',
      right: 'today prev,next'
    },
    businessHours: {
      daysOfWeek: [1, 2, 3, 4, 5] // V3的dow配置在V4中更名为daysOfWeek
    },
    windowResizeHandling: true, // V3的handleWindowResize更名为windowResizeHandling
    eventLimit: 2,
    eventLimitClick: 'popover',
    eventContent: function(info) { // 替代V3的eventRender方法
      // 直接返回包含HTML内容的配置对象,FullCalendar会直接渲染不转义
      return {
        html: info.event.title
      };
    }
  });

  calendar.render();
});

关键变化说明:

  • 配置项更名:V4对不少配置项的名称做了规范,比如header→headerToolbar、dow→daysOfWeek、handleWindowResize→windowResizeHandling,沿用旧名称会导致配置解析失败。
  • 事件渲染逻辑替换:eventRender被eventContent替代,不再需要手动查找DOM元素修改内容,直接返回包含html属性的对象即可让FullCalendar渲染原始HTML。

你之前遇到的JSON解析错误,本质是V4无法识别eventRender这个废弃配置项,导致整个日历配置解析失败;移除后配置正常加载,但默认的内容转义机制把HTML当成了纯文本。

最后提醒下:如果事件标题中的HTML包含用户输入内容,一定要做好XSS防护,避免安全风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 06:52:44