我正在编写一个使用context-menu和page-mod模块的Firefox插件。
当上下文是输入控件时,此附加组件将新菜单项添加到上下文菜单。单击菜单项时,我向服务器请求获取一些数据并将结果推送到page-mod
正在使用的内容脚本。
由于某种原因,onAttach
函数未被调用。控制台中没有错误。我不确定为什么没有被召唤。这就是我在做的事情。
var data = require("self").data,
contextMenu = require("context-menu"),
request = require("request").Request;
var workers = [];
var pageMod = require("page-mod");
pageMod.PageMod({
include: '*',
contentScriptWhen: 'ready',
contentScriptFile: [data.url("jquery-1.8.2.min.js"), data.url("varnam.js")],
onAttach: function(worker) {
console.log("onAttach");
workers.push(worker);
worker.on("detach", function() {
var index = workers.indexOf(worker);
if (index >= 0) workers.splice(index, 1);
});
}
});
解决此问题的任何帮助都会很棒。完整代码可用here。
答案 0 :(得分:8)
当网址模式以(或只是)星号开头时,它会与网址匹配,方案为http
,https
和ftp
。
由于您的测试页面位于数据目录中,因此其网址方案为resource
。这就是为什么没有触发PageMod的原因。
您可以通过执行类似
的操作添加测试页网址var varnam = pageMod.PageMod({
// blah blah
});
varnam.include.add(data.url("test.html"));