从Firefox附加组件内容脚本复制到剪贴板

Copy to clipboard from Firefox add-on content script

本文关键字:脚本 复制 剪贴板 Firefox 组件      更新时间:2023-09-26

我想在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

为了解决这个问题,我想我可能需要以某种方式与页面脚本交互,但在阅读文档后,我仍然不确定如何做到这一点。任何人可以张贴样本代码或指出我在正确的方向?

我终于让它与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.');