2012-11-12 7 views
7

Tôi đang cố gắng cả ngày có làm việc này và tôi không thể ... Tôi đã thử: - phiên bản flash (ít nhất là 3 người khác nhau) - document.execCommand (" sao chép ") trong tập lệnh nội dung, nhưng cũng trong trang nền Tôi đã kiểm tra nhiều trang trên stackoverflow ... mọi giải pháp có sẵn.Sao chép vào clipboard trong phần mở rộng chrome

Có ai có ví dụ làm việc không?

EDIT:

manifest.json

{ 
    "name": "test", 
    "manifest_version": 2, 
    "version": "1.0", 
    "description": "test", 
    "content_scripts": [{ 
      "matches": ["https://somesite.com*"], 
      "js": ["jquery.js", "script.js"], 
      "run_at": "document_end", 
      "css": ["style.css"] 
    }], 
    "permissions": [ 
      "clipboardWrite", 
      "clipboardRead" 
    ] 
} 

script.js

$(document).ready(function() { 
    $('body').append('<textarea id="test"/>'); 
    var $test = $('#test'); 
    $test.text('some text which should appear in clipboard'); 
    $test.select(); 
    document.execCommand('copy'); 
    alert('copied!'); 
}); 

Trên không hoạt động. Thông báo được hiển thị ...

EDIT2: Tôi cũng đã thử với các phiên bản flash, nhưng nó có thể không hoạt động vì tiện ích đó là thứ chạy trên máy chủ cục bộ, tôi nghĩ vậy.

Trả lời

7

Sao chép hoạt động kỳ lạ. Bạn nên đăng ký một người nghe sự kiện cho bản sao, sau đó điều này sẽ được gọi khi bạn làm document.execCommand('copy').

Đây là một ví dụ làm việc của trình xử lý sự kiện:

document.addEventListener('copy', function(e) { 
    var textToPutOnClipboard = "some text which should appear in clipboard"; 
    e.clipboardData.setData('text/plain', textToPutOnClipboard); 
    e.preventDefault(); 
}); 
3

Hãy chắc chắn rằng bạn đã có quyền truy cập cho bản sao trong manifest.json của bạn:

"permissions": [ 
    "clipboardWrite", // for copy and cut 
    "clipboardRead", // for paste 

], 

và sau đó sử dụng document.execCommand('copy') khi một cái gì đó được chọn thông tin

More here.

+0

Cũng thx để được giúp đỡ, bạn có thấy một cái gì đó sai trong mã của tôi (xem câu hỏi thay đổi nội dung)? – mrzepa