2012-03-02 103 views
7

我在护目镜中搜索并没有找到任何答案。 新的剪贴板API支持使用document.exec command将图像复制到剪贴板。 如果是,我如何将图像data url复制到剪贴板作为图像?Chrome扩展程序支持将图像复制到剪贴板?

我是网页截图扩展程序的开发者,我搜索将图像复制到剪贴板的方法。 我还寻找一种方法来打开特定软件的图像。

回答

1

我正在开发一个ScreenShotShare Chrome扩展,我也需要将剪辑后的图像复制到剪贴板。我发现该解决方案适用于我。
1.添加 “clipboardWrite” 的manifest.json文件, “clipboardRead” 的权限
2.做一份工作与background.js的background.html
3.添加background.html
4.我实施“copyImageToClipboard”在background.js

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; 
    } 

+0

它不适合我。没有副本(只有图片标题,如果我指定)。你有没有工作的例子? – Shluch 2013-11-03 13:16:24

+0

我发现这种方式只适用于Evernote等文本编辑器,不适用于word和ipages。一位朋友告诉我:专注于img并触发cmd + c或ctrl + c,我试过了,但没有成功。有些人说在webkit中,有一个覆盖KeyboardEvent keyCode的bug,我试过http://jsbin.com/EruQEFoH/2/edit,但还没有成功 – Cyanny 2013-12-03 07:55:02

1

clipboardData API在所有浏览器几乎实现的,所以反而docuemnt.exec命令,你可以试试下面还参考下面的链接,具有类似用途的情况下发挥作用你的。

https://www.lucidchart.com/techblog/2014/12/02/definitive-guide-copying-pasting-javascript/

clipboardData.setData( '文本/纯',selection.getText()); clipboardData.setData('application/officeObj',selection.serialize()); clipboardData.setData('image/bmp',draw(selection)); clipboardData.setData('text/html',...);

+0

有人可以证实这是在Chrome中工作吗? – Aminadav 2015-10-08 14:54:14

+0

你可以安装lucidchart chrome扩展,并用它来播放aruond,你会知道你可以复制粘贴他们的自定义绘图。 – Gomes 2015-10-08 15:21:18