clipboard.write支持哪些MIME类型?是否有可支持的视频类MIME类型?
Async Clipboard API 支持的MIME类型说明
目前主流浏览器对clipboard.write方法的MIME类型支持没有统一的通用标准,不同浏览器内核的支持范围差异较大:
Safari(Webkit内核)支持的类型
仅支持以下4种:
text/plaintext/htmltext/uri-listimage/png
Chromium内核(Chrome、Edge、新版Opera等)支持的类型
在上述4种的基础上,额外支持以下类型:
image/webpimage/jpegimage/gifimage/svg+xmltext/rtf
视频类MIME类型支持情况
截至2024年,所有主流浏览器的原生Async Clipboard API均不支持任何视频类MIME类型的直接写入,包括你用到的video/webm,也包括video/mp4等常见视频格式,这就是你触发Type video/webm not supported on write报错的直接原因。
替代实现方案
如果需要实现将生成的webm视频写入剪贴板的能力,可采用以下两种可行方案:
- 将视频blob转换为临时blob链接,以
text/plain类型写入剪贴板,用户粘贴时可直接读取链接使用,示例代码如下:
const blobUrl = URL.createObjectURL(blob); const item = new ClipboardItem({ ['text/plain']: new Blob([blobUrl], { type: 'text/plain' }) }); await navigator.clipboard.write([item]);
- 若你的应用是Electron等封装的桌面端应用,可直接调用系统原生剪贴板API写入视频内容,不受浏览器API的类型限制。
内容的提问来源于stack exchange,提问作者Amit
相关产品推荐
相关产品推荐

