Javascript firefox webextension替代用于复制图像的附加剪贴板sdk
我正在尝试开发一个Firefox扩展,其中包括将图像复制到剪贴板。在过去,这似乎是使用插件sdk完成的。但是,这是不推荐的,所以我需要找到另一种方法将图像复制到剪贴板。使用Javascript firefox webextension替代用于复制图像的附加剪贴板sdk,javascript,firefox-addon,firefox-addon-sdk,copy-paste,firefox-addon-webextensions,Javascript,Firefox Addon,Firefox Addon Sdk,Copy Paste,Firefox Addon Webextensions,我正在尝试开发一个Firefox扩展,其中包括将图像复制到剪贴板。在过去,这似乎是使用插件sdk完成的。但是,这是不推荐的,所以我需要找到另一种方法将图像复制到剪贴板。使用document.execCommand('copy')但我无法让它用于复制图像 从搜索网页的角度来看,通常不可能用Javascript将图像复制到剪贴板,但我想知道Firefox是否有某种webextensions API来访问剪贴板 编辑:以下是我用来复制图像的代码: document.body.appendChild(i
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()
,但在运行时不会发生任何事情
复制与扩展捆绑在一起的映像:
// requires the API permission "clipboardWrite"
fetch(browser.runtime.getURL('image.png'))
.then(response => response.arrayBuffer())
.then(buffer => browser.clipboard.setImageData(buffer, 'png'));
WebExtensions具有
setImageData()
复制与扩展捆绑在一起的映像:
// requires the API permission "clipboardWrite"
fetch(browser.runtime.getURL('image.png'))
.then(response => response.arrayBuffer())
.then(buffer => browser.clipboard.setImageData(buffer, 'png'));
请选择主题中的问题:包括重复该问题的问题。对于Chrome扩展或Firefox WebExtensions,这几乎总是意味着包括manifest.json和一些背景、内容和/或弹出脚本/HTML。寻求调试帮助的问题(“为什么这段代码没有按我想要的方式工作?”)必须包括:(1)所需的行为,(2)特定的问题或错误,(3)在问题本身中重现它所需的最短代码。另请参见:,和。请将问题放在主题上:包括重复该问题的问题。对于Chrome扩展或Firefox WebExtensions,这几乎总是意味着包括manifest.json和一些背景、内容和/或弹出脚本/HTML。寻求调试帮助的问题(“为什么这段代码没有按我想要的方式工作?”)必须包括:(1)所需的行为,(2)特定的问题或错误,(3)在问题本身中重现它所需的最短代码。另请参见:、和。如果链接页面发生更改,则仅链接的答案可能无效。因此,最好在这里包括答案的基本部分,并提供链接供参考。引用
setImageData
工作原理中最相关的部分,可以提高答案的长期价值。@adiga谢谢。我在答案中添加了示例。如果链接页面发生更改,则仅链接的答案可能无效。因此,最好在这里包括答案的基本部分,并提供链接供参考。引用setImageData
工作原理中最相关的部分,可以提高答案的长期价值。@adiga谢谢。我在回答中加了一个例子。