从Firefox插件内容脚本复制到剪贴板

3
我希望在Firefox插件中编写一个内容脚本,以响应事件将字符串复制到用户的剪贴板中。我知道可以使用Firefox剪贴板API来完成此操作:
var clipboard = require("sdk/clipboard");
var val = "Lorem ipsum dolor sit amet";
alert('copying "' + val + '" to clipboard');
clipboard.set(val);

但是,尝试在内容脚本中访问剪贴板API会产生以下错误:

ReferenceError: require is not defined

为了解决这个问题,我认为我可能需要以某种方式与页面脚本进行交互,但是阅读文档后,我仍然不确定如何做。是否有人可以发布示例代码或指引我正确的方向?
1个回答

4

我终于使用onAttach使其工作起来了。这是我的main.js文件:

var pageMod = require("sdk/page-mod");
var self = require("sdk/self");
var clipboard = require("sdk/clipboard");

pageMod.PageMod({
    include: 'example.com',
    contentScriptFile: self.data.url('content-script.js'),
    onAttach: function(worker) {
        worker.port.on('copyToClipboard', function(request) {
            clipboard.set(request);
        });
    }
});

而且在content-script.js中:
self.port.emit('copyToClipboard', 'This text will be copied.');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接