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

Typo3 8.7.x/Extbase/Typoscript:使用RECORDS时如何移除锚点包裹

解决TYPO3 AJAX JSON输出中锚点链接的问题

这个锚点<a id="c2"></a>是TYPO3默认渲染tt_content元素时自动添加的——系统会给每个内容元素生成锚点方便页面内跳转,但在你需要纯JSON输出的场景下,就会污染结果。下面是几种有效的解决方法:

方法1:自定义RECORDS渲染对象,跳过默认模板

直接指定renderObj为TEXT(或组合对象COA),只提取你需要的字段内容,完全绕开默认的tt_content模板(锚点就是在这里生成的):

ajax = PAGE
ajax {
  typeNum = 99
  config {
    disableAllHeaderCode = 1
    additionalHeaders = Content-type:application/json
    admPanel = 0
    debug = 0
  }
  10 = RECORDS
  10 {
    tables = tt_content
    source = 77
    # 指定自定义渲染对象,只输出目标字段
    renderObj = TEXT
    renderObj {
      # 替换成你实际需要的字段,比如header、bodytext
      field = bodytext
      # 如果需要组合多个字段成JSON结构,可改用COA:
      /*
      renderObj = COA
      renderObj {
        10 = TEXT
        10.dataWrap = {"header":"{field:header}",
        20 = TEXT
        20.dataWrap = "bodytext":"{field:bodytext}"}
        # 转义特殊字符,保证JSON格式合法
        stdWrap.htmlSpecialChars = 1
        stdWrap.jsonEncode = 1
      }
      */
    }
  }
}

方法2:临时覆盖tt_content模板,移除锚点逻辑

如果需要保留默认内容渲染但去掉锚点,可以针对这个typeNum覆盖tt_content的innerWrap配置,删掉锚点生成代码:

ajax = PAGE
ajax {
  typeNum = 99
  config {
    disableAllHeaderCode = 1
    additionalHeaders = Content-type:application/json
    admPanel = 0
    debug = 0
  }
  # 移除tt_content默认的锚点生成代码
  tt_content.stdWrap.innerWrap.cObject.default.10 >
  10 = RECORDS
  10 {
    tables = tt_content
    source = 77
  }
}

方法3:使用CONTENT对象+JSON格式化(最推荐)

这种方式更灵活,能精准控制输出的JSON结构,同时彻底避免锚点问题:

ajax = PAGE
ajax {
  typeNum = 99
  config {
    disableAllHeaderCode = 1
    additionalHeaders = Content-type:application/json
    admPanel = 0
    debug = 0
  }
  10 = CONTENT
  10 {
    table = tt_content
    select {
      uidInList = 77
    }
    renderObj = TEXT
    renderObj {
      # 自定义JSON结构,包含你需要的所有字段
      dataWrap = {"uid":"{field:uid}","header":"{field:header}","bodytext":"{field:bodytext}"}
      # 自动转义特殊字符,确保JSON格式完全合法
      stdWrap.jsonEncode = 1
    }
  }
}

注意事项

  • 确保字段名和tt_content表中的实际字段一致(比如bodytext是富文本字段,header是标题字段)
  • 如果需要输出多个内容元素,调整source或uidInList的值即可
  • 用stdWrap.jsonEncode能自动处理引号、换行等特殊字符,避免JSON格式错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:26:47