2012-03-02 17 views
7

ゴーグルで検索しても何の答えも見つかりませんでした。 新しいクリップボードAPIは、document.exec commandを使用してイメージをクリップボードにコピーする機能をサポートしています。 はいの場合、画像data urlを画像としてクリップボードにコピーするにはどうすればよいですか?Chrome拡張機能で画像をクリップボードにコピーできますか?

私はWebページのスクリーンショットの拡張機能の開発者です。イメージをクリップボードにコピーする方法を探します。 特定のソフトウェアで画像を開く方法も検索します。

答えて

1

私はScreenShotShareクロムエクステンションを開発していますが、私はクリップボードにもクリップされたイメージをコピーする必要があります。そして私の解決策が私のために働くことが分かった。
1. manifest.jsonをファイルにパーミッションを追加 "clipboardWrite"、 "clipboardRead"
2. background.js
3とbackground.htmlでコピー作業を行う
4. Iをbackground.htmlに追加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

+0

私はこの方法がEvernoteのようなテキストエディタでのみ動作し、単語やipageでは動作しないことがわかりました。友人は私に言った:imgに集中し、cmd + cまたはCtrl + cをトリガする、私は試したが成功しなかった。何人かの人がwebkitに言った、KeyboardEventのkeyCodeを上書きするバグがあります。私はhttp://jsbin.com/EruQEFoH/2/editを試しましたが、まだ成功していません。 – Cyanny

1

clipboardDataのAPIは、ほぼすべてのブラウザで実装されているので、代わりにdocuemnt.execコマンドは、あなたも同様のユースケースを持っている以下のリンクを参照して、以下の試みることができるで機能する「copyImageToClipboard」を実装あなた。

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'、...);

+0

誰かがChromeでこれが動作していることを確認できますか? – Aminadav

+0

あなたはlucidchartのクロム拡張をインストールし、それと一緒に再生することができます、あなたは自分のカスタム図面を貼り付けコピーすることができます知っているでしょう。 – Gomes

関連する問題