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

TYPO3 7.6的rtehtmlarea富文本编辑器不显示已保存内容求临时方案

TYPO3 7.6 rtehtmlarea编辑器显示异常临时解决办法

问题描述

在TYPO3 7.6版本中,rtehtmlarea富文本编辑器无法正常显示已保存内容,反而输出以下代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head></head><body></body></html>

该问题影响Chrome、Safari、Edge、Opera的最新版本,仅Firefox能正常显示内容,且网站暂无升级预算。

临时解决办法

1. 修改RTE TypoScript配置,过滤多余标签

在模板的Setup部分添加以下TypoScript,强制编辑器过滤掉自动生成的完整HTML结构标签:

RTE.default {
  proc {
    entryHTMLparser_db = 1
    entryHTMLparser_db {
      allowTags < RTE.default.proc.allowTags
      dontRemoveUnknownTags = 0
      tags.HTML >
      tags.BODY >
      tags.HEAD >
      tags.DOCTYPE >
    }
    exitHTMLparser_db = 1
    exitHTMLparser_db {
      allowTags < RTE.default.proc.allowTags
      dontRemoveUnknownTags = 0
      tags.HTML >
      tags.BODY >
      tags.HEAD >
      tags.DOCTYPE >
    }
  }
}

此配置会在内容存入数据库和从数据库读取时,移除DOCTYPE、html、head、body等外层标签。

2. 修改rtehtmlarea核心JS逻辑

找到typo3conf/ext/rtehtmlarea/Resources/Public/JavaScript/rtehtmlarea.js文件,定位到自动添加文档结构的代码段,注释掉相关逻辑(例如生成DOCTYPE、html/body标签的部分)。修改前请做好文件备份,避免小版本更新覆盖修改内容。

3. 前端JS临时清理内容

若无法修改后端配置,可在全局JS文件中添加以下代码,页面加载后自动清理编辑器输出的多余标签:

document.addEventListener('DOMContentLoaded', () => {
  document.querySelectorAll('.rtehtmlarea').forEach(el => {
    el.innerHTML = el.innerHTML.replace(/<!DOCTYPE[^>]*>|<html[^>]*>|<head[^>]*>|<\/head>|<body[^>]*>|<\/body>|<\/html>/gi, '');
  });
});

4. 切换兼容编辑器(可选)

如果上述方法无效,可尝试切换到TYPO3 7.6兼容的旧版CKEditor扩展(rteckeditor),或寻找支持该版本的轻量第三方RTE扩展替代rtehtmlarea。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 17:07:28