To zbyt długo, aby skomentować doskonałą odpowiedź Alasdair, więc tworzę inną odpowiedź. Odpowiedź Alasdair jest doskonała i sprawdziła się znakomicie, ale jako początkujący dodatek do Chrome jeszcze trochę mi zajęło sprawne działanie. Dla każdego, kto znajduje się w podobnej sytuacji, tutaj jest rozwinięcie jego odpowiedzi.
Strony w tle/zdarzenia mogą wchodzić w interakcję ze schowkiem systemowym, o ile zażądano odpowiednich uprawnień. Nie są w stanie wchodzić w interakcję z DOM stron załadowanych przez użytkownika. Skrypty zawartości nie mogą wchodzić w interakcje ze schowkiem systemowym, ale mogą wchodzić w interakcję z DOM stron załadowanych przez użytkownika. Spójrz na numer explanation of the extension architecture, aby uzyskać dobry przegląd tego wszystkiego.
To oznacza, że musisz wykonać operacje kopiowania/wklejania ze schowka systemowego na stronie wydarzenia/tła, co Alasdair opisał powyżej. Wszelkie wklejanie lub kopiowanie z DOM strony, którą przegląda użytkownik, musi nastąpić w twoim skrypcie treści. Oba skrypty są w stanie łatwo komunikować się z message passing.
Mam an extension, którego jedynym celem jest wklejenie, a architektura pochodzi w dużej mierze z tego postu. Jeśli chcesz zobaczyć powyższą technikę w praktyce, take a look at the code. W szczególności background.html, background.js i contentscript.js.
Jeśli naprawdę się spieszysz, here is a gist.
Mały obserwacji, ale nie znaczy 'document.getElementById' jako' document.findElementById' nie istnieje? Jestem pewien, że to nie jest problem z twoim prawdziwym kodem, bo to z pewnością spowoduje błąd. – Alasdair
Zobacz także to pytanie: http://stackoverflow.com/questions/6969403/cant-get-execcommandpaste-to-work-in-chrome/7100464#7100464 –