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

标签 javascript firefox greasemonkey clipboard clipboard-interaction

我找到了 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/

相关文章:

jquery - 通过浏览器扩展添加表值

javascript - 如何在不进入多个框的情况下获取同一 div 中的内容?

javascript - 尝试使用 jQuery 将另一个 html 页面加载到 div 中。我看了其他帖子,但我的还是不行

html - moz-appearance 似乎不起作用

javascript - 哈希安全漏洞 - 如何修复?

javascript - 动态创建 greasemonkey 脚本

javascript - 如何使用javascript函数按ID对选择的元素进行排序?

javascript - 定义完全独立的样式信息

html - 输入框分离 css 在 ff 和 chrome 中不同

css - 未知属性 'zoom' 。声明被删除