Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript firefox webextension替代用于复制图像的附加剪贴板sdk_Javascript_Firefox Addon_Firefox Addon Sdk_Copy Paste_Firefox Addon Webextensions - Fatal编程技术网

Javascript firefox webextension替代用于复制图像的附加剪贴板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

我正在尝试开发一个Firefox扩展,其中包括将图像复制到剪贴板。在过去,这似乎是使用插件sdk完成的。但是,这是不推荐的,所以我需要找到另一种方法将图像复制到剪贴板。使用
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谢谢。我在回答中加了一个例子。