2012-03-02 113 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