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。