Skip to content

copyHtmlAndPlainToClipboard

同时写入 text/html(wire format)与 text/plain(可还原元数据),便于 IM 富文本粘贴回编辑器。

环境要求

  • 浏览器环境;内部使用 globalThisClipboardItemnavigator.clipboard.writedocument.execCommand
  • 需支持 ClipboardItem + Blob 才能双格式写入;否则回退 HTML 或纯文本方案。

函数签名

typescript
function copyHtmlAndPlainToClipboard(html: string, plain: string): Promise<boolean>

参数

参数名类型必填说明
htmlstringwire HTML 片段
plainstring可还原 plain(通常来自 materializeImRichHtmlToRestorablePlainText

二者皆空时返回 false。

返回值

类型说明
Promise<boolean>任一策略成功即为 true

工作原理

  1. ClipboardItem:同时写入 text/htmltext/plain 两个 Blob。
  2. 回退 HTMLcontentEditable 临时节点 + 选区 + execCommand('copy'),保留选区状态。
  3. 回退 plain:调用 copyTextToClipboard 仅写纯文本。
  4. 按优先级尝试,全部失败返回 false。

异常

无异常抛出。