从 Firefox 附加内容脚本复制到剪贴板
Copy to clipboard from Firefox add-on content script
我想写一个content script in a Firefox add-on that will copy a string to the user's clipboard in response to an event. I know that I can do this with the 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 不知何故,但在阅读了文档之后,我仍然不确定该怎么做。任何人都可以 post 示例代码或指出正确的方向吗?
我终于让它与 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.');
我想写一个content script in a Firefox add-on that will copy a string to the user's clipboard in response to an event. I know that I can do this with the 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 不知何故,但在阅读了文档之后,我仍然不确定该怎么做。任何人都可以 post 示例代码或指出正确的方向吗?
我终于让它与 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.');