我正在尝试开发一个Firefox扩展,其中包括将图像复制到剪贴板。在过去,这似乎是使用clipboard
插件 sdk 完成的。但是,这已被弃用,因此我需要找到另一种将图像复制到剪贴板的方法。文档提到使用document.execCommand('copy')
但我无法让它用于复制图像。
通过搜索网络,似乎通常无法将图像复制到 Javascript 中的剪贴板,但我想知道 Firefox 是否有某种网络扩展 API 来访问剪贴板。
编辑:这是我用来尝试复制图像的代码:
document.body.appendChild(img);
let range = document.createRange();
range.setStartBefore(img);
range.setEndAfter(img);
range.selectNode(img);
window.getSelection().addRange(range);
var successful = document.execCommand('copy');
window.getSelection().removeAllRanges();
document.body.removeChild(img);
img
是一个 HTML 图像元素。 但是,当它运行时什么也没发生
WebExtensions 有setImageData()
.
复制与扩展捆绑在一起的映像:
// requires the API permission "clipboardWrite" fetch(browser.runtime.getURL('image.png')) .then(response => response.arrayBuffer()) .then(buffer => browser.clipboard.setImageData(buffer, 'png'));
剪贴板.setImageData() - Mozilla |多核