在Firefox插件中使用简单的prefs模块

在Firefox插件中使用简单的prefs模块,firefox,firefox-addon,preferences,firefox-addon-sdk,Firefox,Firefox Addon,Preferences,Firefox Addon Sdk,我的插件()中的simple prefs模块有问题。我正在尝试使用menulist或radio类型。问题是未加载或启动加载项-未调用函数main。 当我使用cfx run命令启动新的、清晰的Firefox Instance时,我没有这个问题——一切正常。我尝试在两台不同的计算机上运行此插件,不幸的是结果相同。 下面是我的代码片段: main.js: var prefs = require("simple-prefs").prefs; ... exports.main = function (op

我的插件()中的
simple prefs
模块有问题。我正在尝试使用
menulist
radio
类型。问题是未加载或启动加载项-未调用函数
main

当我使用
cfx run
命令启动新的、清晰的Firefox Instance时,我没有这个问题——一切正常。我尝试在两台不同的计算机上运行此插件,不幸的是结果相同。
下面是我的代码片段:

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"
            }
        ]
    }]
}

我正在使用AddonSDK1.12和Firefox18.0。在我的代码中,代码片段可能是bug——我刚刚在这里写过。

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

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

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


我也在使用Firefox18和SDK 1.12。在您的示例中,JSON中有一条注释,这可能会给您带来问题。

不管该值是字符串还是整数,它都不起作用。您是否确认使用简单的prefs模块是导致不稳定行为的原因?是的。当我删除
radio
/
menulist
首选项并将其替换为
bool
首选项时,插件开始工作。我将JSON与注释放在一起以显示问题,在实际代码中它是“普通”的。你用什么来编译插件?cfx?是的,普通cfx,带有SDK 1.12。仅供参考,我是Mozilla SDK的产品经理。如果你运行我的代码并自己构建它,它能工作吗?是的,它能。我已经将您的JSON复制到我的项目中,但我也将FF升级到18.0.1,现在一切都正常了。属性的顺序重要吗?我认为属性的顺序不重要。