在Firefox插件中使用simple-prefs模块

时间:2013-01-18 09:58:57

标签: firefox firefox-addon preferences firefox-addon-sdk

我的插件(simple-prefs documentation)中的simple-prefs模块存在问题。我正在尝试使用menulistradio类型。问题是未加载或启动插件 - 未调用函数main 当我使用cfx run命令时,我没有这个问题,这启动了新的,明确的Firefox实例 - 一切正常。我试过在两台不同的计算机上运行这个插件,不幸的是结果相同 下面我放了代码片段:

main.js:

var prefs = require("simple-prefs").prefs;
...
exports.main = function (options, callbacks) {
    console.log("Addon loaded: " + self.loadReason);
    var modLogic = pageMod.PageMod({
        include: "*",
        contentScriptWhen: "start",
        contentScriptFile: data.url("myContentScript.js"),
        onAttach: function (worker) {
            console.log("Page worker attached to: " + worker.tab.url);
            // here I'm using prefs object: if(prefs.decision === "Y")
        }
    });
}

的package.json:

{
    "name": "myaddon",
    ...
    "preferences" : [{
        "name": "decision",
        "title": "someTitle",
        "type": "radio", // or menulist
        "value": "D",
        "options": [{
                "value": "D",
                "label": "Default"
            },
            {
                "value": "Y",
                "label": "Yes"
            },
            {
                "value": "N",
                "label": "No"
            }
        ]
    }]
}

我正在使用addon-sdk 1.12和Firefox 18.0。在我的代码片段中可能是错误 - 我刚刚在这里写了它。

2 个答案:

答案 0 :(得分:2)

我刚刚创建了这个示例repo:

https://github.com/canuckistani/jp-prefs-example

所有功能都适用于我,请参阅此屏幕截图:

https://dl.dropbox.com/u/44296964/Screen%20Shot%202013-01-18%20at%201.50.31%20PM.png

我也在使用Firefox 18和SDK 1.12。在您的示例中,您的JSON中有注释,这可能会导致您出现问题。

答案 1 :(得分:0)

该模块将在未来版本中更改,因此我不知道它的使用安全性。 我使用简单存储来保持浏览器会话之间的数据。 此外,cfx环境有时会出现一些奇怪的行为,而无法正确注册类型。 我只使用JSON.parse()来确保。