繁体   English   中英

如何使用Greasemonkey将数据复制到剪贴板?

[英]How to copy data to the clipboard with Greasemonkey?

我发现了这个问题,但试图使用那里给出的代码:

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


给出错误消息:

来自“ http://example.com ”的脚本被拒绝了UniversalXPConnect权限。



我也尝试过( 来自Mozilla网站 ):

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

这给出了错误消息: Components.classes is undefined

在这两种情况下,它都不适用于Windows 7上的最新Firefox。
我还应该尝试什么?

更新:

从版本1。10(2013年6月20日)开始,Greasemonkey现在支持GM_setClipboard()函数
使用如下:

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

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


较旧的GM版本:

使用Greasemonkey非常困难,因为GM devs拒绝支持它,必须克服FF和Flash安全设置。
如果通过手动点击启动副本,则可以执行此操作 在这种情况下,请使用此问题中的一种技术。

如果您希望进行某种全自动剪贴板操作,则必须为您的GM脚本开发自己的附加组件或插件。


多年来,Scriptish一直支持这一点:

如果您愿意切换脚本加载项,请注意Scriptish提供GM_setClipboard()来设置剪贴板 (但没有阅读它的功能?!)

Scriptish并不完美,但它在某些方面比Greasemonkey更好。 (注意我不是附加任何附加组件,也不是我对它们完全满意。)

大多数GM脚本都可以在Scriptish中运行,没有任何问题。


至于代码片段,从问题; 它们本质上是相同的(第一个只是GM沙箱的帐户)。 对于许多版本的Firefox而言,这种方法已经过时,替换代码的记录很少。
您将不得不使用需要用户交互的技术,或者您必须编写自定义帮助程序加载项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM