我在谷歌上搜索了一下,并没有找到答案。新的剪贴板API支持使用document.exec command
将图像复制到剪贴板。如果可以的话,如何将图像data url
作为图像复制到剪贴板中呢?
我是Webpage Screenshot扩展程序的开发者,我正在寻找一种复制图像到剪贴板的方法。我还在寻找一种用特定软件打开图像的方法。
我在谷歌上搜索了一下,并没有找到答案。新的剪贴板API支持使用document.exec command
将图像复制到剪贴板。如果可以的话,如何将图像data url
作为图像复制到剪贴板中呢?
我是Webpage Screenshot扩展程序的开发者,我正在寻找一种复制图像到剪贴板的方法。我还在寻找一种用特定软件打开图像的方法。
clipboardData API已经在几乎所有的浏览器中实现了,因此您可以尝试下面的方法,而不是使用docuemnt.exec命令。您还可以参考下面的链接,该链接具有与您类似的用例。
https://www.lucidchart.com/techblog/2014/12/02/definitive-guide-copying-pasting-javascript/
clipboardData.setData('text/plain', selection.getText());
clipboardData.setData('application/officeObj', selection.serialize());
clipboardData.setData('image/bmp', draw(selection));
clipboardData.setData('text/html', ...);
copyImageToClipboard: function () {
var img = $('clipboard-img');
img.src = localStorage[this.screenshotURIName]; // I store the image URI in localStorage
var div = $('clipboard-div');
div.contentEditable = true;
var range;
if (document.createRange) {
range = document.createRange();
range.selectNodeContents(div);
window.getSelection().removeAllRanges();
window.getSelection().addRange(range);
div.focus();
document.execCommand('copy');
}
div.contentEditable = false;
}
今天距离最初发布已经过去了7年,这是Google Chrome中星标最多的问题。使用JavaScript复制图像现在成为可能!
Chrome 76 Beta支持此功能:https://blog.chromium.org/2019/06/chrome-76-beta-dark-mode-payments-new.html
您可以在此处阅读完整草案: https://www.chromestatus.com/feature/5074658793619456
以及这里:https://w3c.github.io/clipboard-apis/#async-clipboard-api
示例:
var data = new Blob(["iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+P+/HgAFhAJ/wlseKgAAAABJRU5ErkJggg=="], {type : "image/png"});
const clipboardItemInput = new ClipboardItem({'image/png' : blobInput});
await navigator.clipboard.write([clipboardItemInput]);
您可以在此处进行测试:http://w3c-test.org/clipboard-apis/async-write-image-read-image-manual.https.html
(目前仅支持Chrome 76 beta版本)