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

时间:2015-06-05 01:23:27

标签: javascript firefox copy firefox-addon firefox-addon-sdk

我想在Firefox附加组件中编写一个content script,它会将字符串复制到用户的剪贴板以响应事件。我知道我可以使用Firefox clipboard 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

要解决这个问题,我想我可能需要以某种方式interact with a page script,但在阅读完文档后,我仍然不知道该怎么做。任何人都可以发布示例代码或指出我正确的方向吗?

1 个答案:

答案 0 :(得分: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.');