2012-03-02 27 views
7

Szukam w goglach i nie znalazłem żadnej odpowiedzi. Nowa obsługa interfejsu API schowka umożliwia kopiowanie obrazu do schowka za pomocą document.exec command. Jeśli tak, jak mogę skopiować obraz data url do schowka jako obraz?Rozszerzenie Chrome obsługuje kopiowanie obrazu do schowka?

Jestem deweloperem rozszerzenia zrzutu strony i szukam sposobu na skopiowanie obrazu do schowka. Szukam również sposobu na otwarcie obrazu za pomocą określonego oprogramowania.

Odpowiedz

1

Opracowuję rozszerzenie chrome ScreenShotShare, potrzebuję również skopiować przycięty obraz do schowka. I znalazłem rozwiązanie, które działa dla mnie.
1. Add "clipboardWrite", "clipboardRead", aby uprawnienia w pliku manifest.json
2. wykonywać pracę kopiowania w background.html z background.js
3. dodatek do background.html
4. I wdrożenia „copyImageToClipboard” funkcjonować w 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

To nie działa dla mnie. Nic nie kopiuje (tylko tytuł obrazu, jeśli określam). Czy masz jakiś działający przykład? – Shluch

+0

Odkryłem, że działa to tylko w edytorze tekstów, takim jak Evernote, a nie działa na słowo i ipages. Znajomy powiedział mi: skup się na img i uruchom cmd + c lub ctrl + c, próbowałem, ale nie sukces. Jakiś facet powiedział w webkicie, jest błąd do nadpisania keyCode z KeyboardEvent, próbowałem http://jsbin.com/EruQEFoH/2/edit, ale nie udało się jeszcze – Cyanny

1

clipboardData API jest prawie we wszystkich realizowanych w przeglądarce, więc polecenie zamiast docuemnt.exec, można spróbować poniżej odnoszą się również poniższy link, który ma podobny przypadek użycia jako Twój.

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

clipboardData.setData ('text/zwykły' selection.getText()); clipboardData.setData ("application/officeObj", selection.serialize()); clipboardData.setData ("image/bmp", rysowanie (wybór)); clipboardData.setData ("text/html", ...);

+0

Ktoś może potwierdzić, że działa w Chrome? – Aminadav

+0

można zainstalować rozszerzenie chrom lucidchart i grać z nim aruond, będziesz wiedział, że możesz skopiować wkleić swój niestandardowy rysunek. – Gomes

Powiązane problemy