为什么在Windows-mod模块中onAttach没有在Firefox附加软件中执行?

时间:2012-12-09 10:16:32

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

我正在编写一个使用context-menupage-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

1 个答案:

答案 0 :(得分:8)

当网址模式以(或只是)星号开头时,它会与网址匹配,方案为httphttpsftp

由于您的测试页面位于数据目录中,因此其网址方案为resource。这就是为什么没有触发PageMod的原因。

您可以通过执行类似

的操作添加测试页网址
var varnam = pageMod.PageMod({ 
// blah blah
});

varnam.include.add(data.url("test.html"));