9

fand ich this question aber versuchen, den Code dort gegeben zu verwenden:Wie kopiert man Daten mit Greasemonkey in die Zwischenablage?

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


Gibt den Fehler:

Ein Skript von «http://example.com» wurde UniversalXPConnect Privilegien verweigert.



Ich habe auch versucht zu benutzen (from Mozilla site):

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

, die die Fehlermeldung verursacht: Components.classes is undefined. In beiden Fällen funktioniert es nicht mit dem neuesten Firefox unter Windows 7.
Was sollte ich sonst noch versuchen?

Antwort

19

Update:

Ab Version 1.10 (20. Juni 2013), Greasemonkey unterstützt jetzt the GM_setClipboard() function.
Verwendung wie folgt:

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

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


Ältere GM Versionen:

Dieses sehr schwierig ist, mit Grease zu tun, da GM Devs verweigern sie und FF und Flash-Sicherheitseinstellungen müssen unterstützen sein überwinden.
Sie können es tun, wenn die Kopie von einem manuellen Klick initiiert wird. In diesem Fall verwenden Sie eine der Techniken aus this question.

Wenn Sie eine vollautomatische Zwischenablage benötigen, müssen Sie ein eigenes Add-on oder Plugin für Ihr GM-Skript entwickeln.


Scriptish hat dies seit Jahren unterstützt:

Wenn Sie Scripting-Add-ons zu Schalt offen sind, beachten Sie, dass ScriptishGM_setClipboard() to set the clipboard zur Verfügung stellt. (Aber keine Funktion, um es zu lesen?)

Scriptish ist nicht perfekt, aber es ist in einigen Punkten besser als Greasemonkey. (Hinweis: Ich bin weder mit dem Add-On verbunden, noch bin ich mit beiden völlig zufrieden.)

Die meisten GM-Skripts werden in Scriptish ohne Probleme ausgeführt.


Wie für die Code-Schnipsel, aus der Frage; Sie sind im Wesentlichen dasselbe (das erste ist nur für die GM-Sandbox verantwortlich). Dieser Ansatz ist für viele Firefox-Versionen veraltet und der Ersatzcode ist schlecht dokumentiert.
Sie müssen Techniken verwenden, die Benutzerinteraktion erfordern, oder Sie müssen ein benutzerdefiniertes Helfer-Add-On schreiben.

+0

+1 für Scriptish. Meinen Tag gerettet. – Kris

+0

[Greasemonkey unterstützt endlich GM_setClipboard!] (Http://scriptish.org/news/2013/07/15/greasemonkey-finally-supports-clipboard.html) –