我正在尝试开发一个 Firefox 扩展,其中涉及将图像复制到剪贴板。在过去,这似乎是使用 clipboard
完成的。插件 SDK。但是,这已被弃用,因此我需要找到另一种方法将图像复制到剪贴板。 docs mentioned使用 document.execCommand('copy')
但我无法让它用于复制图像。
从网络搜索看来,通常不可能用 Javascript 将图像复制到剪贴板,但我想知道 Firefox 是否有某种 webextensions 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()
。
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'));
关于javascript - 用于复制图像的 Firefox WebExtension 替代插件剪贴板 sdk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43007323/