以下是 Tiny Cloud 和 TinyMCE Enterprise 的发行说明。如需了解 TinyMCE 最新社区版本的信息,请参阅 TinyMCE Changelog。

概述

TinyMCE 8.2.0 于 2025 年 10 月 22 日(星期三)面向 TinyMCE Enterprise 和 Tiny Cloud 发布。本发行说明概述了 TinyMCE 8.2.0 的变更内容,包括:

  • 配套 Premium 插件变更

  • 改进

  • Bug 修复

  • 已知问题

配套 Premium 插件变更

以下 Premium 插件更新与 TinyMCE 8.2.0 同步发布。

Media Optimizer

TinyMCE 8.2.0 版本包含配套发布的 Media Optimizer Premium 插件。

Media Optimizer 现在具备全面的视频处理能力。

视频上传支持

Media Optimizer 插件现支持视频上传与处理,功能不再局限于此前的仅图像处理。用户可通过拖放、文件选择或 URL 输入方式,在编辑器内直接上传视频。

该插件现支持 MP4、WebM 及其他常见标准视频格式。

此新功能支持以下配置选项:

  • uploadcare_video_properties:全面的视频播放器配置,包括自动播放、控件、循环播放等。

  • uploadcare_video_resize:用于控制是否可在编辑器内直接调整视频大小的选项。

如需了解 Media Optimizer 插件的详细信息,请参阅:Media Optimizer: Video。

浮动图像的空标题未正确渲染

在旧版 Media Optimizer 中,当 `

` 元素使用 `display: table` 样式时,浮动的 `<img>` 会导致空的 `<figcaption>` 错误地渲染在图像旁边而非下方。删除标题文本还会破坏布局,导致标题区域偏移或完全消失。

在 TinyMCE 8.2.0 中,此问题已修复:当关联图像浮动时,对 `<figcaption>` 元素应用 `clear: both`。这确保了标题始终渲染在图像下方(即使为空),维持了正确的对齐方式和一致的视觉结构。

如需了解 Media Optimizer 插件的详细信息,请参阅:Media Optimizer。

License Key Manager

TinyMCE 8.2.0 版本包含配套发布的 License Key Manager 插件。

新增 js/commerciallicensekeymanager.js 文件,在编辑器初始化后延迟加载大部分插件

License Key Manager 已重构,新增了按需延迟加载的 js/commerciallicensekeymanager.js 文件。此变更缩短了编辑器的初始化时间和首次渲染时间。

如需了解 License Key Manager 插件的详细信息,请参阅:License Key Manager。

Templates

TinyMCE 8.2.0 版本包含配套发布的 Templates Premium 插件。

Templates 包含以下修复。

修复在创建类别或模板时,标题输入框聚焦状态下按 Enter 键会提交表单(即使提交按钮已禁用)

此前,在创建类别或模板时,若焦点位于标题输入框,按 Enter 键会触发表单提交,即使提交按钮已禁用。这是因为输入处理逻辑在提交前未验证表单状态。因此,用户可能无意中尝试创建空名称的类别或模板,导致错误。

TinyMCE 8.2.0 通过更新输入处理逻辑解决了此问题:在按 Enter 键允许提交前,先检查表单有效性。现在,若表单无效或提交按钮已禁用,按 Enter 键不会触发提交,从而避免了错误尝试创建空名称类别或模板的情况。

Suggested Edits

TinyMCE 8.2.0 版本包含配套发布的 Suggested Edits Premium 插件。

Suggested Edits 包含以下改进。

新增 suggestededits_auto_approve 选项,自动批准当前用户的编辑

Suggested Edits 插件新增了 suggestededits_auto_approve 选项。该选项允许根据 user_id 设置自动批准当前用户的编辑,无需手动审核。启用后,同一用户的所有新编辑及先前建议的变更将立即被批准并应用,简化了无需审核的工作流。

如需了解 suggestededits_auto_approve 选项的更多信息,请参阅:suggestededits_auto_approve。

建议现在显示已变更的内容类型

此前,Suggested Edits 插件仅在建议卡片描述中显示“content”一词,作为每个建议的通用上下文。

在 8.2.0 版本中,Suggested Edits插件在卡片描述中显示内容类型以及编辑类型,以便为每个建议提供更多上下文信息。

如需了解Suggested Edits插件的信息,请参阅:Suggested Edits。

Full Page HTML

TinyMCE 8.2.0 版本包含了Full Page HTML高级插件的配套发布版本。

Full Page HTML包含以下修复。

charset meta 属性中提供的编码未被检测到

之前的编码检测逻辑无法识别使用charset meta属性定义的某些编码,这导致同一页面内出现不一致或冲突的编码,从而引发显示或编辑问题。

TinyMCE 8.2.0 通过新增对新编码类型的支持解决了此问题,确保原始编码格式和新编码格式都能被正确检测和处理。因此,现在可以一致地处理使用任一编码风格的页面。当编辑已编码内容时,输出将规范化为之前支持的编码格式,确保标记的一致性,并避免因保留原始编码风格而产生的混淆。

head 元素被添加到与meta元素同一行

之前,Full Page HTML插件中的meta属性未被正确视为块级元素。这导致<head>元素被直接附加到与meta标签同一行,从而导致生成的 HTML 输出中出现格式不一致的问题。

在 8.2.0 版本中,meta属性已更新为以块级元素的方式呈现,确保在<head>部分内实现正确的分隔和换行处理。

如需了解Full Page HTML插件的信息,请参阅:Full Page HTML。

改进

TinyMCE 8.2.0 还包含以下改进:

某些元素在缩进时会被序列化器添加额外的换行符

之前,由于 DOM Parser 序列化器未将title正确识别为块级元素,某些元素在缩进时会收到额外的换行符。这导致输出中出现不必要的空白。通过在代码中显式将title标记为块级元素,解决了此问题,确保序列化过程不再引入不必要的空白。

Bug 修复

TinyMCE 8.2.0 还包含以下 Bug 修复:

类似焦点轮廓和占位符的 UI 元素在打印后仍会可见

之前,诸如焦点轮廓和占位符文本之类的 UI 元素会在编辑器内容的打印版本中渲染出来,导致打印文档中出现不必要的视觉伪影。这种行为不仅会造成混淆,还降低了打印材料的专业性。为解决此问题,引入了打印专用样式,以便在打印过程中自动隐藏编辑器内容中所有与 UI 相关的元素。因此,现在的打印输出仅包含预期内容,确保所有打印件都能呈现清晰一致的效果。

启用 accordion 插件后,<details>元素上的open属性现在会被规范化为open="open"。

之前,当与 accordion 插件一起使用时,<details>元素上的open属性定义不一致。在某些情况下,该属性显示为open="true",而在通过插件进行切换时会将其转换为open="open"。这种不一致在加载外部创建的、包含多个具有不同属性值的展开手风琴的内容时会导致问题,从而出现手风琴状态不匹配的情况。

在 TinyMCE 8.2.0 版本中,已对这种行为进行了标准化:当启用 accordion 插件时,在内容加载时,open属性会被规范化为open="open"。

如果按钮图标在鼠标悬停时更新,工具栏按钮上的提示信息有时会保持可见

之前,当图标更新时,按钮提示信息并不总能正确消失,因为处理悬停事件的element会被替换,且mouseout事件从未触发。这导致在点击按钮后提示信息仍保持可见,从而造成了令人困惑的用户体验。

TinyMCE 8.2.0 通过调整图标渲染逻辑解决了此问题,使悬停和提示信息行为附加到按钮本身,而非图标element上。因此,当setIcon API更新图标时,不再干扰鼠标事件。

在某些浏览器中,如果编辑器顶部超出框架范围,编辑器在获得焦点时会滚动到编辑器中心

针对 Chromium 的一个 bug 的旧版变通方案会导致当编辑器获得焦点且其顶部边缘位于视口之外时,页面会滚动到编辑器中心;尽管与自动调整大小等功能无关,但这些功能经常会触发此行为,并在某些情况下导致意外的滚动。

从 TinyMCE 8.2.0 版本开始,由于底层的 Chromium 问题已得到修复,该变通方案已被移除,从而允许浏览器以原生方式管理滚动。

获取内容时,一些与拖动元素相关的 UI 元素未被正确过滤掉

在 TinyMCE 8.2.0 中,修复了一个问题:表格调整大小功能所使用的元素未被序列化器标记为待移除。当在表格调整大小期间通过 getContent() 调用获取内容时,这些临时 UI 节点可能会被包含在返回的 HTML 中,从而导致多余的标记,并可能破坏数据。

该修复会将这些元素标记为带有 bogus 属性,使序列化器可靠地过滤它们,从而确保获取的内容干净、稳定,并防止在保存或处理的输出中出现意外的伪影。

使用方向键导航时,光标可能会卡在绝对定位的 CEF 元素周围

此前,当使用方向键导航包含绝对定位不可编辑元素的内容时,光标可能会被困在这些元素附近。此问题干扰了光标移动,使用户难以继续在编辑器内容周围导航。

在 TinyMCE 8.2.0 中,更新了水平光标导航逻辑,以确保在导航经过绝对定位元素时,光标移动不再受到干扰。

模式现在允许在 meta 元素上使用 property RDFa 属性

此前,模式不认可 property RDFa 属性对于 meta 元素是有效的,导致该属性在内容验证过程中(例如在 TinyMCE fullpagehtml 高级插件中)被移除。此行为可能会剥离用于社交媒体预览或结构化数据集成的关键元数据,并要求集成者手动将该属性加入白名单以保留它。

在 8.2.0 中,模式已更新,以包含 property 作为 meta 元素的有效属性。此更改确保了与常见元数据标准的兼容性。

修正了 undoManager.add 方法的类型。event 参数的类型为 EditorEvent,而不是 Event。

此前,undoManager.add 方法将其 event 参数定义为 Event 类型,导致类型推断不准确并降低了开发者的清晰度。此问题导致类型验证不完整,并在使用 undo() 事件时限制了 IDE 的辅助功能。

TinyMCE 8.2.0 通过更新 undoManager.add 方法,使用 EditorEvent<unknown> 类型作为 event 参数,解决了此问题,从而确保与其他 TinyMCE API 的一致性。

有关 undoManager.add 方法的更多信息,请参见:undoManager.add()。

在某些情况下,Chromium 浏览器会在将内容拖放到编辑器上时意外滚动编辑器。

此前,在基于 Chromium 的浏览器中(从 Chrome 141 开始,以及 140 的某些版本),在 dragover 事件期间聚焦编辑器可能会触发浏览器的 scroll-to-caret 行为。由于光标最初位于文档的开头,当用户将内容拖放到编辑器上时,页面可能会跳转到顶部,从而干扰了拖放工作流程。

在 TinyMCE 8.2.0 中,更新了 dragover 处理逻辑,在编辑器接收焦点之前将光标移动到预期的放置位置。这确保了 Chrome 的 scroll-to-caret 检查会发现光标已经在视图中,从而防止意外滚动并保持流畅的拖放体验。

添加了将 Web 组件加载到 iframe 中的支持

此前,没有方法可以将 Web 组件加载到编辑器 iframe 或其他插件使用的预览 iframe 中,这导致这些组件无法正确渲染。此限制影响了依赖自定义 Web 组件来扩展编辑器功能或内容可视化的用户。在 8.2.0 中,引入了一个新 API getComponentUrls,允许在自定义元素模式中指定 Web 组件的脚本 URL。此增强功能使 Web 组件能够在 TinyMCE 编辑器环境中正确注册和渲染。

有关使用带有块级和内联级组件的自定义元素的示例,请参见:使用带有块级和内联级组件的 custom_elements 的示例。

解决了拆分按钮渲染宽度比 TinyMCE 7 中更窄的问题,确保了工具栏中尺寸的一致性

在 TinyMCE 8.2.0 中,修复了一个问题:拆分按钮渲染的宽度比 TinyMCE 7 和其他工具栏按钮更窄。这是因为拆分按钮的主要部分使用了一条 CSS 规则,导致它在初始化期间收缩到图标大小,从而产生了错误的固定宽度。这导致拆分按钮在视觉上不一致,降低了它们的可点击性,并可能导致文本标签被截断。

TinyMCE 8.2.0 通过调整宽度行为来解决这个问题,使其为图标继承正确的 34px,为文本继承自动宽度,从而确保了工具栏中尺寸的一致性。

已知问题

TinyMCE 8.2.0 还包含以下已知问题:

Uploadcare 视频在复制暂停且静音的视频后,音频继续播放

在某些边缘情况下,当插入视频、播放、暂停、静音后,再使用 Ctrl+C(在 Mac 上为 Cmd+C)进行复制时,暂停且静音的视频可能会开始播放音频。一旦发生这种情况,即使在从编辑器中删除视频后,音频也会继续播放。

解决方法: 没有,用户必须刷新页面以停止不需要的音频,这可能导致任何未保存的内容丢失。

状态: 目前正在调查中。