javascript - 用于复制图像的 Firefox WebExtension 替代插件剪贴板 sdk

标签 javascript firefox-addon firefox-addon-sdk copy-paste firefox-addon-webextensions

我正在尝试开发一个 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'));

clipboard.setImageData() - Mozilla | MDN

关于javascript - 用于复制图像的 Firefox WebExtension 替代插件剪贴板 sdk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43007323/

相关文章:

javascript - 重新打包 Firefox SDK 扩展

javascript - 我的 firefox 插件代码正在破坏导航栏

javascript - 如何将值传递给 html.erb rails 中的 javascript

javascript - 建立链接 'enter-clickable'

firefox-addon - Firefox和质量检查测试工具?

firefox - 如何在 firefox 和 safari 浏览器上加载扩展?

firefox-addon - 我可以通过 Firefox 插件 SDK 监听用户输入的 URL 吗?

javascript - AngularJS 指令隔离范围不更新父级

javascript - 无法读取文件上传未定义的属性 '0'

firefox - Firefox 扩展 Web Worker 中的区域设置字符串比较无法正常工作