这些是 Tiny Cloud 和 TinyMCE Enterprise 的发行说明。如需了解 TinyMCE 最新社区版本的相关信息,请参阅 TinyMCE 更新日志。
概述
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:视频。
浮动图片的空标题渲染异常问题
在 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 元属性中提供的编码无法被检测
之前的编码检测逻辑无法识别使用 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"。
如果按钮图标在悬停时更新,工具栏按钮上的工具提示有时会保持可见
之前,当图标更新时,按钮工具提示并不总是能正确消失,因为处理悬停事件的元素被替换了,且 mouseout 事件从未触发。这导致工具提示在点击按钮后仍保持可见,造成了令人困惑的 UI 体验。
TinyMCE 8.2.0 通过调整图标渲染逻辑解决了此问题,使悬停和工具提示行为附加到按钮本身,而不是图标元素。因此,当 setIcon API 更新图标时,它不再干扰鼠标事件。
如果编辑器顶部超出框架,编辑器在获得焦点时会在某些浏览器上滚动到编辑器中心
针对 Chromium bug 的一种传统变通方法导致当编辑器获得焦点且其顶部边缘位于视口之外时,页面会滚动到编辑器中心;尽管不相关,但诸如 autoresize 之类的功能经常会触发此行为,并在某些情况下导致意外滚动。
从 TinyMCE 8.2.0 开始,由于底层的 Chromium 问题已修复,该变通方法已被移除,允许浏览器原生管理滚动。
在获取内容时,一些与拖动元素相关的 UI 元素未被正确过滤掉
在 TinyMCE 8.2.0 中,解决了一个序列化程序未能标记表格调整大小功能所用元素以便移除的问题。在表格调整大小处于激活状态期间,当通过 getContent() 调用获取内容时,这些临时的 UI 节点可能会被包含在返回的 HTML 中,从而导致多余的标记,并可能损坏数据。
此修复将这些元素标记为带有虚构属性,使序列化程序能够可靠地将其过滤掉,确保内容检索干净、稳定,并防止在保存或处理的输出中出现非预期的残留物。
使用方向键导航时,光标可能会卡在绝对定位的 CEF 元素周围
此前,当使用方向键导航包含绝对定位的不可编辑元素的内容时,光标可能会被困在这些元素附近。这一问题干扰了插入符的移动,使用户难以继续在编辑器内容周围导航。
在 TinyMCE 8.2.0 中,已更新水平插入符导航逻辑,以确保在绝对定位元素周围导航时,插入符移动不再受到干扰。
Schema 现在允许 meta 元素上的 property RDFa 属性
此前,schema 未将 property RDFa 属性识别为 meta 元素的有效属性,导致在 TinyMCE fullpagehtml premium 插件等内容验证功能中,该属性会被移除。此行为可能会剥离用于社交媒体预览或结构化数据集成的 essential 元数据,并要求集成人员手动将该属性加入白名单以保留它。
在 8.2.0 中,schema 已更新,将 property 作为 meta 元素的有效属性包含进来。此变更确保了与常见元数据标准的兼容性。
修正了 undoManager.add 方法的类型。event 参数的类型为 EditorEvent,而非 Event。
undoManager.add 方法此前将其 event 参数定义为 Event 类型,导致类型推断不准确,并降低了开发者理解的清晰度。这一问题导致类型验证不完整,并在处理 undo() 事件时限制了 IDE 的辅助功能。
TinyMCE 8.2.0 通过更新 undoManager.add 方法,将 event 参数的类型改为 EditorEvent<unknown>,从而解决了这一问题,确保与其他 TinyMCE API 的一致性。
有关 undoManager.add 方法的更多信息,请参阅:undoManager.add()。
在某些情况下,当将内容拖动到编辑器上时,Chromium 浏览器会意外滚动编辑器。
此前,在基于 Chromium 的浏览器(从 Chrome 141 开始,以及部分 140 版本)中,在 dragover 事件期间聚焦编辑器可能会触发浏览器的滚动至插入符行为。由于插入符最初位于文档开头,当用户将内容拖动到编辑器上时,页面可能会跳至顶部,从而干扰了拖放工作流程。
在 TinyMCE 8.2.0 中,dragover 处理已更新,会在编辑器接收焦点之前将插入符移动到预期的放置位置。这确保了 Chrome 的滚动至插入符检查会发现插入符已在视图中,从而防止意外滚动,并保持流畅的拖放体验。
添加了将 web 组件加载到 iframe 中的支持
此前,没有方法可以将 web 组件加载到编辑器 iframe 或其他插件使用的预览 iframe 中,这导致这些组件无法正确渲染。这一限制影响了依赖自定义 web 组件来实现扩展编辑器功能或内容可视化的用户。在 8.2.0 中,引入了一个新的 API getComponentUrls,允许在自定义元素 schema 中指定 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)进行复制时,暂停且静音的视频可能会开始播放音频。一旦发生这种情况,即使从编辑器中删除该视频,音频也会继续播放。
临时解决办法: 无,用户必须刷新页面以停止不需要的音频,这可能会导致任何未保存内容的丢失。
状态: 目前正在调查中。