clipboard.setImageData()

翻译不完整。 请帮助我们翻译这篇文章!

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

图像被作为包含经过编码的图像的 ArrayBuffer 提供。支持 JPEG 和 PNG 格式。

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

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

这是一个返回 Promise 的异步函数。

语法

browser.clipboard.setImageData(imageData, imageType)

参数

imageData
An ArrayBuffer containing the encoded image data to copy to the clipboard.
imageType
A DOMString indicating the type of image contained in imageData: "png" or "jpeg".

返回值

A Promise that will be resolved with no arguments if the operation succeeded, or rejected if there was an error (for example, because the data did not represent a valid image).

浏览器兼容性

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxOperaSafariFirefox for Android
setImageDataChrome No support NoEdge No support NoFirefox Full support 57Opera No support NoSafari No support NoFirefox Android Full support 57

Legend

Full support  
Full support
No support  
No support

示例

Copy a remote image:

// requires:
// * the host permission for "https://cdn.mdn.mozilla.net/*"
// * the API permission "clipboardWrite"

fetch('https://cdn.mdn.mozilla.net/static/img/favicon144.png')
.then(response => response.arrayBuffer())
.then(buffer => browser.clipboard.setImageData(buffer, 'png'));

Copy an image that was bundled with the extension:

// 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.