这些是 Tiny Cloud 和 TinyMCE Enterprise 的发布说明。有关最新 TinyMCE 社区版本的信息,请参阅 TinyMCE Changelog。
概述
TinyMCE 8.2.0 于 2025 年 10 月 22 日星期三发布,适用于 TinyMCE Enterprise 和 Tiny Cloud。本发布说明概述了 TinyMCE 8.2.0 的变更,包括:
配套的 Premium 插件变更
改进
错误修复
已知问题
配套的 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 键不会触发提交,防止错误尝试用空名称创建分类或模板。
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 序列化器正确识别为块,某些元素在缩进时会收到额外的换行符。这导致输出中出现不需要的空白字符。该问题已通过在代码中显式将标题标记为块得到解决,确保序列化不再引入不必要的空白。
Bug 修复
TinyMCE 8.2.0 还包含以下 bug 修复:
焦点轮廓和占位符等 UI 元素在打印后仍会可见
此前,编辑器内容在打印版本中会渲染焦点轮廓和占位符文本等 UI 元素,导致打印文档中出现不需要的视觉伪影。这种行为会导致混淆并降低打印材料的专业外观。为解决此问题,引入了特定于打印的样式,以便在打印过程中自动隐藏编辑器内容中所有与 UI 相关的元素。因此,打印输出现在仅包含预期内容,确保所有打印输出干净且一致。
当启用 accordion 插件时,<details> 元素上的 open 属性现在会归一化为 open="open"。
此前,当与 accordion 插件一起使用时,<details> 元素上的 open 属性定义不一致。在某些情况下,该属性显示为 open="true",而通过插件切换时会将其转换为 open="open"。这种不一致导致在加载包含多个不同属性值的展开 accordion 的外部创建内容时出现问题,从而导致 accordion 状态不匹配。
在 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 中,导致产生多余的标记,并可能使数据损坏。
该修复使用 bogus 属性标记这些元素,以便序列化器可靠地将其过滤掉,从而确保内容获取的干净与稳定,并防止在保存或处理的输出中出现非预期的痕迹。
使用方向键导航时,光标可能会在绝对定位的 CEF 元素周围被卡住
此前,当使用方向键在包含绝对定位且不可编辑元素的内容中导航时,光标可能会被困在这些元素附近。该问题破坏了光标的移动,使用户难以继续在编辑器内容周围进行导航。
在 TinyMCE 8.2.0 中,水平光标导航逻辑已更新,确保在绝对定位元素周围导航时不会再受到光标移动被打断的影响。
Schema 现在将允许在 meta 元素上使用 property RDFa 属性
此前,Schema 未将 property RDFa 属性识别为 meta 元素的合法属性,导致其在内容校验过程中被移除(例如在 TinyMCE 的 fullpagehtml 高级插件中)。这种行为可能会剔除用于社交媒体预览或结构化数据集成的关键元数据,并要求集成方手动将该属性加入白名单以保留它。
在 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 的滚动到光标检查发现光标已经在视图中,从而防止意外滚动并保持顺畅的拖放体验。
新增对在 iframe 中加载 Web Component 的支持
此前,没有方法可将 Web Component 加载到编辑器 iframe 或其他插件使用的预览 iframe 中,从而导致这些组件无法正确渲染。这一限制影响了依赖自定义 Web Component 来实现扩展编辑器功能或内容可视化的用户。在 8.2.0 中,引入了一个新的 API getComponentUrls,允许在自定义元素 schema 中指定用于 Web Component 的脚本 URL。该增强功能使 Web Component 能够在 TinyMCE 编辑器环境中被正确注册和渲染。
有关使用包含块级和行内级组件的自定义元素的示例,请参见:使用包含块级和行内级组件的 custom_elements 的示例。
修复了分隔按钮渲染宽度小于 TinyMCE 7 的问题,确保工具栏中的大小一致
在 TinyMCE 8.2.0 中,修复了一个此前分隔按钮渲染宽度小于 TinyMCE 7 以及其他工具栏按钮的问题。发生此问题的原因是分隔按钮的主要部分使用了一条 CSS 规则,使其在初始化期间折叠为图标大小,从而导致了错误的固定宽度。这使分隔按钮在视觉上不一致,降低了其可点击性,并可能导致文本标签被截断。
TinyMCE 8.2.0 通过调整宽度行为来解决此问题,使其在图标时继承正确的 34px,在文本时为 auto—从而确保工具栏中的大小一致。
已知问题
TinyMCE 8.2.0 还包括以下已知问题:
复制已暂停并静音的视频后,Uploadcare 视频音频仍在播放
在某些边缘情况下,当插入视频、播放、暂停并静音后,再使用 Ctrl+C(或 Mac 上的 Cmd+C)进行复制时,已暂停且静音的视频可能会开始播放音频。一旦发生这种情况,即使从编辑器中删除视频,音频仍会继续播放。
临时解决办法:无,用户必须刷新页面以停止不需要的音频,这可能会导致任何未保存的内容丢失。
状态:目前正在调查中。