Quá dài để nhận xét về phản hồi tuyệt vời của Alasdair, vì vậy tôi đang tạo một câu trả lời khác. Câu trả lời của Alasdair là tuyệt vời và làm việc tuyệt vời cho tôi, nhưng như một người mới đến các phần mở rộng Chrome nó vẫn mất một thời gian để làm cho nó hoạt động. Đối với bất cứ ai ở một vị trí tương tự, đây là một sự mở rộng về câu trả lời của anh ấy.
Các trang nền/sự kiện có thể tương tác với khay nhớ tạm thời của hệ thống, miễn là bạn đã yêu cầu các quyền thích hợp. Họ không thể tương tác với DOM của các trang mà người dùng đã tải. Tập lệnh nội dung không thể tương tác với khay nhớ tạm thời của hệ thống, nhưng chúng có thể tương tác với DOM của các trang mà người dùng đã tải. Hãy xem explanation of the extension architecture để có cái nhìn tổng quan về tất cả điều này.
Điều này về cơ bản có nghĩa là bạn cần thực hiện các thao tác sao chép/dán từ khay nhớ tạm thời hệ thống trong các trang sự kiện/nền của bạn, đó là những gì Alasdair đã nêu ở trên. Mọi thao tác dán hoặc sao chép từ DOM của trang mà người dùng đang xem phải xuất hiện trong tập lệnh nội dung của bạn. Hai tập lệnh có thể giao tiếp khá dễ dàng với message passing.
Tôi có an extension chỉ có mục đích là dán và kiến trúc chủ yếu đến từ bài đăng này. Nếu bạn muốn xem kỹ thuật trên trong thực tế, take a look at the code. Cụ thể, background.html, background.js và contentscript.js.
Nếu bạn đang thực sự vội vàng, here is a gist.
quan sát nhỏ, nhưng bạn đã có nghĩa là 'document.getElementById' là 'document.findElementById' không tồn tại? Tôi chắc chắn đây không phải là vấn đề với mã thực sự của bạn vì điều này chắc chắn sẽ gây ra lỗi. – Alasdair
Đồng thời xem câu hỏi này: http://stackoverflow.com/questions/6969403/cant-get-execcommandpaste-to-work-in-chrome/7100464#7100464 –