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

FullCalendar JavaScript日程调度器单引号渲染异常问题

解决FullCalendar中title字段单引号无法正确渲染的问题

我太懂这个糟心的问题了——手动拼接JS对象的时候,特殊字符(比如单引号)总能搞崩渲染,哪怕手动加转义也不管用,本质是模板渲染和JS字符串解析的双重规则冲突在搞鬼。咱们一步步来解决:

问题根源

你现在的写法是直接把模板变量塞进JS字符串里,比如title: "{{=row.evento.titolo}}"。如果标题里有单引号(比如"O'Neil's Workshop"),模板渲染后会变成title: "O'Neil's Workshop"——看起来JS语法没问题?但如果你的模板引擎自动转义了单引号(比如把'变成\'),或者标题里同时出现双引号,就会直接破坏字符串结构,导致FullCalendar解析失败。

最稳妥的解决方案:用JSON序列化代替手动拼接

与其手动处理每个字段的转义,不如让JSON来帮你搞定所有特殊字符。这种方法一劳永逸,不管标题里有单引号、双引号还是换行符,都能正确渲染。

步骤1:后端(控制器)生成JSON格式的事件列表

假设你用的是web2py(从模板语法看很匹配),在控制器里把事件数据整理成列表,再序列化为JSON:

import json

# 整理事件数据
events_list = []
for row in rowseventi:
    event_data = {
        "title": row.evento.titolo,
        "id": row.evento.id,
        "resourceId": row.evento.risorsa,
        "start": row.evento.inizio,
        "end": row.evento.fine,
        "recurring": row.evento.ricorrenza,
        "color": row.evento.colore,
        "url": URL('mostra_evento', args=row.evento.id)
    }
    events_list.append(event_data)

# 把JSON字符串传给视图
response.view_data['events_json'] = json.dumps(events_list)

步骤2:视图里直接使用JSON数据

在FullCalendar的初始化代码里,直接把JSON赋值给events选项:

$('#calendar').fullCalendar({
    // 其他配置...
    events: {{=XML(events_json)}}
});

XML()函数会确保JSON字符串被正确输出为JS能识别的对象数组,所有特殊字符都会被自动转义。

紧急临时方案:仅修改视图字段转义

如果不想改动后端代码,也可以在视图里对title字段做JS安全转义。用模板引擎的转义函数处理title:

{{for row in rowseventi:}}
{
    title: "{{=XML(row.evento.titolo, quote=True)}}",
    id: '{{=row.evento.id}}',
    resourceId: '{{=row.evento.risorsa}}',
    start: '{{=row.evento.inizio}}',
    end: '{{=row.evento.fine}}',
    recurring: '{{=row.evento.ricorrenza}}',
    color : '{{=row.evento.colore}}',
    url: '{{=URL('mostra_evento',args=row.evento.id)}}',
},
{{pass}}

这里quote=True会自动把字符串里的双引号转义为\",同时处理其他可能破坏JS字符串的特殊字符,确保title能被正确解析。

验证方法

修改后打开浏览器的开发者工具,查看页面源代码,找到生成的事件对象:

  • 正常情况下,包含单引号的标题应该显示为title: "O\'Neil's Workshop"(如果用双引号包裹)或者title: 'O\'Neil\'s Workshop'(如果用单引号包裹),这样FullCalendar就能正确渲染了。

内容的提问来源于stack exchange,提问作者Andrea Fae'

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:39:35