Javascript 为什么页面修改模块中的onAttach没有在Firefox插件sdk中执行?

Javascript 为什么页面修改模块中的onAttach没有在Firefox插件sdk中执行?,javascript,firefox,firefox-addon,firefox-addon-sdk,Javascript,Firefox,Firefox Addon,Firefox Addon Sdk,我正在编写一个Firefox附加组件,它使用和模块 当上下文为输入控件时,此加载项会将新菜单项添加到上下文菜单中。单击菜单项时,我请求服务器获取一些数据,并将结果推送到page mod正在使用的内容脚本 由于某些原因,onAttach函数未被调用。控制台中没有错误。我不知道为什么没有人打电话给它。这就是我正在做的 var data = require("self").data, contextMenu = require("context-menu"), request = re

我正在编写一个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);
        });
    }
});

解决这个问题的任何帮助都将是巨大的。完整代码可用。

当url模式以星号开头(或只是星号)时,它将与url匹配,并使用
http
https
ftp

由于测试页面位于数据目录中,因此其url方案为
resource
。这就是PageMod不会被触发的原因

您可以通过如下操作添加测试页面url

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

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

完美的谢谢你的帮助。它现在运转良好。谢谢你的帮助。