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

Nav*_*K N 2 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);
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

解决这个问题的任何帮助都会很棒.完整代码可在此处获得.

paa*_*paa 8

当url模式以(或只是)星号开头时,它将与urls匹配http,https并且方案为和ftp.

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

您可以通过执行类似操作来添加测试页面URL

var varnam = pageMod.PageMod({ 
// blah blah
});

varnam.include.add(data.url("test.html"));
Run Code Online (Sandbox Code Playgroud)