clipboard.setImageData()

将图像复制到剪贴板。图像在写入剪贴板之前会被重新编码。如果图像无效,剪贴板将不会被修改。

图像以包含已编码图像的ArrayBuffer形式提供。支持 JPEG 和 PNG 格式。

虽然此 API 基于 Chrome 的clipboard.setImageData() API,但存在一些差异

  • Chrome API 仅适用于应用,不适用于扩展程序。
  • 此 API 仅需要 "clipboardWrite" 权限,而 Chrome 版本还需要 "clipboard" 权限。
  • Chrome 的 API 使用回调,而此 API 仅支持 Promise。
  • 此 API 不支持 additionalItems 参数。

这是一个异步函数,返回一个 Promise

语法

js
browser.clipboard.setImageData(imageData, imageType)

参数

imageData

一个包含要复制到剪贴板的已编码图像数据的ArrayBuffer

imageType

一个字符串,指示 imageData 中包含的图像类型:"png""jpeg"

返回值

一个Promise,如果操作成功,则会以无参数形式解析;如果发生错误(例如,数据未表示有效图像),则会拒绝。

示例

复制远程图像

js
// requires:
// * the host permission for "https://mdn.github.io/*"
// * the API permission "clipboardWrite"

fetch("https://mdn.github.io/shared-assets/images/examples/favicon144.png")
  .then((response) => response.arrayBuffer())
  .then((buffer) => browser.clipboard.setImageData(buffer, "png"));

复制随扩展程序一起打包的图像

js
// requires the API permission "clipboardWrite"

fetch(browser.runtime.getURL("image.png"))
  .then((response) => response.arrayBuffer())
  .then((buffer) => browser.clipboard.setImageData(buffer, "png"));

浏览器兼容性

注意:此 API 基于 Chromium 的chrome.clipboard API。