Introducing a new way to build custom web editing experiences using the EditContext API  |  Blog  |  Chrome for Developers

文章《Introducing a new way to build custom web editing experiences using the EditContext API》介绍了新的 EditContext API,旨在帮助开发人员在其 web 应用程序中构建先进的编辑功能。尽管平台通过诸如 <input><textarea> 元素以及为元素应用 contenteditable 属性等提供了编辑能力,但是它们的基础能力往往难以满足开发者的高级需求。EditContext API 是为解决此类问题而提出的,它将文本输入与浏览器默认的编辑行为解耦,允许直接接收文本和构成输入,而无需通过监测 DOM 的变化。

EditContext API 的基础知识:

  1. 创建 EditContext 对象,并与 DOM 元素相关联,使元素可编辑并接收文本输入。
  2. textupdate 事件的回调中接收输入,需要渲染用户输入的文本以及选择区域。
  3. 开发者还需管理编辑区域的大小、用户选择变化、编辑 UI 的位置,并应用格式。

应用 EditContext API 的责任:

EditContext 与 contenteditable 对比:

文章总结道,通过 EditContext API 构建强大的自定义编辑体验在 web 上变得更加简易。它正式由 Microsoft Edge 团队在协作中实施至 Chromium,并已在 2024 年 1 月的 Chrome 和 Edge 版本 121 中发布。目前,它仅在基于 Chromium 的浏览器中可用,还未在其他浏览器中普及。对于有兴趣了解更多的开发者,可以查阅 MDN 文档,对于设计的意见反馈,可以在 EditContext API 的 Github 仓库提出 issue,对于实现的 bug,则可以在 crbug.com 提交报告。