我找到了 this question但尝试使用那里给出的代码:
unsafeWindow.netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
const clipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"]
.getService(Components.interfaces.nsIClipboardHelper)
;
clipboardHelper.copyString('test');
给出错误信息:
A script from «http://example.com» was denied UniversalXPConnect privileges.
我也尝试使用(from Mozilla site):
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 现在支持 the GM_setClipboard()
function .
像这样使用:
// ==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 开发者拒绝支持它,并且必须克服 FF 和 Flash 安全设置。
如果复制将通过手动点击 启动,您可以这样做。在这种情况下,使用来自 this question 的技术之一。 .
如果您希望拥有某种全自动剪贴板操作,那么您将必须为您的 GM 脚本开发自己的附加组件或插件。
Scriptish 多年来一直支持这一点:
如果您愿意切换脚本附加组件,请注意 Scriptish提供 GM_setClipboard()
to set the clipboard . (但是没有阅读功能?!)
Scriptish 并不完美,但它在某些方面优于 Greasemonkey。 (请注意,我不隶属于任何一个附加组件,也不完全满意。)
大多数 GM 脚本都可以毫无问题地在 Scriptish 中运行。
至于代码片段,来自问题;它们本质上是同一件事(第一个只是说明 GM 沙箱)。对于许多版本的 Firefox 来说,这种方法已经过时,而且替换代码的文档也很少。
您将不得不使用需要用户交互的技术,或者您将不得不编写自定义帮助程序插件。
关于javascript - 如何使用 Greasemonkey 将数据复制到剪贴板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13075645/