2012-03-02 49 views
7

Tôi tìm kiếm trong goggle và không tìm thấy bất kỳ câu trả lời nào. Hỗ trợ API clipboard mới sao chép hình ảnh vào khay nhớ tạm bằng cách sử dụng document.exec command. Nếu có, Làm cách nào để sao chép hình ảnh data url vào clipboard dưới dạng hình ảnh?Tiện ích mở rộng của Chrome có hỗ trợ sao chép hình ảnh vào khay nhớ tạm không?

Tôi là nhà phát triển của tiện ích Ảnh chụp màn hình trang web và tôi tìm cách sao chép hình ảnh vào khay nhớ tạm. Tôi cũng tìm cách mở hình ảnh bằng phần mềm cụ thể.

Trả lời

1

Tôi đang phát triển tiện ích mở rộng chrome ScreenShotShare, tôi cũng cần phải sao chép hình ảnh đã cắt bớt vào khay nhớ tạm. Và tôi đã tìm ra giải pháp phù hợp với tôi.
1. Add "clipboardWrite", "clipboardRead" để các điều khoản trong file manifest.json
2. làm việc sao chép trong background.html với background.js
3. add để background.html
4. Tôi thực hiện "copyImageToClipboard" để hoạt động trong 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

Nó không hoạt động đối với tôi. Không có bản sao nào (chỉ tiêu đề hình ảnh nếu tôi chỉ định). Bạn có ví dụ nào không? – Shluch

+0

Tôi thấy rằng cách này chỉ hoạt động cho trình soạn thảo văn bản như Evernote và không hoạt động cho từ và ipages. Một người bạn nói với tôi: tập trung img và kích hoạt cmd + c hoặc ctrl + c, tôi đã thử, nhưng không thành công. Một số người nói trong webkit, có một lỗi để ghi đè mã khóa của KeyboardEvent, tôi đã thử http://jsbin.com/EruQEFoH/2/edit, nhưng không thành công nhưng – Cyanny

1

clipboardData API được gần như thực hiện trong tất cả các trình duyệt, do đó, lệnh thay vì docuemnt.exec, bạn có thể thử dưới đây cũng tham khảo liên kết dưới đây trong đó có trường hợp sử dụng tương tự như của bạn.

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', vẽ (lựa chọn)); clipboardData.setData ('text/html', ...);

+0

Ai đó có thể xác nhận rằng tính năng này đang hoạt động trong Chrome? – Aminadav

+0

bạn có thể cài đặt phần mở rộng chrome lucidchart và chơi aruond với nó, bạn sẽ biết bạn có thể sao chép dán bản vẽ tùy chỉnh của họ. – Gomes

Các vấn đề liên quan