9

znalazłem this question ale próbuje użyć kodu podanego tam:Jak skopiować dane do schowka za pomocą Greasemonkey?

unsafeWindow.netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); 
const clipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"] 
    .getService(Components.interfaces.nsIClipboardHelper) 
; 
clipboardHelper.copyString('test'); 


Daje komunikat o błędzie:

skryptu z «http://example.com» odmówiono UniversalXPConnect przywileje.



Próbowałem również użyć (from Mozilla site):

const gClipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"] 
    .getService(Components.interfaces.nsIClipboardHelper) 
; 
gClipboardHelper.copyString("test2"); 

co daje komunikat o błędzie: Components.classes is undefined.

W obu przypadkach nie działa z najnowszą przeglądarką Firefox w systemie Windows 7.
Co jeszcze należy spróbować?

Odpowiedz

19

Aktualizacja:

Począwszy od wersji 1.10 (20 czerwca 2013), Greasemonkey obsługuje teraz the GM_setClipboard() function.
Zastosowanie tak:

// ==UserScript== 
// @name  _YOUR_SCRIPT_NAME 
// @include http://YOUR_SERVER.COM/YOUR_PATH/* 
// @grant GM_setClipboard 
// ==/UserScript== 

GM_setClipboard ("The clipboard now contains this sentence."); 


Starsze GM wersje:

Jest to bardzo trudne do zrobienia z Greasemonkey od deweloperów GM odmawiają jej poparcia i ustawienia zabezpieczeń FF i Flash muszą być przezwyciężać.
Możesz to zrobić, jeśli kopia zostanie zainicjowana przez kliknięcie ręczne. W takim przypadku użyj jednej z technik od this question.

Jeśli chcesz mieć jakąś w pełni zautomatyzowaną obsługę schowka, będziesz musiał stworzyć własny dodatek lub wtyczkę do używania skryptu GM.


Scriptish wsparła to od lat:

Jeśli jesteś otwarty na włączenie skryptów dodatki pamiętać, że Scriptish zapewnia GM_setClipboard() to set the clipboard. (Ale nie ma żadnej funkcji, aby to przeczytać ?!)

Scriptish nie jest idealny, ale jest lepszy niż Greasemonkey na kilka sposobów. (Uwaga: nie jestem powiązany z żadnym dodatkiem, ani nie jestem całkowicie z niego zadowolony.)

Większość skryptów GM będzie działała w Scriptish bez problemu.


Co do fragmentów kodu, od pytania; są to w zasadzie to samo (pierwsze tylko konta dla piaskownicy GM). Takie podejście było przestarzałe w przypadku wielu wersji Firefoksa, a kod zamiennika jest słabo udokumentowany.
Będziesz musiał użyć technik, które wymagają interakcji użytkownika, lub będziesz musiał napisać niestandardowy dodatek pomocniczy.

+0

+1 dla Scriptish. Mój dzień. – Kris

+0

[Greasemonkey w końcu obsługuje GM_setClipboard!] (Http://scriptish.org/news/2013/07/15/greasemonkey-finally-supports-clipboard.html) –