在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,现在一切都正常了。属性的顺序重要吗?我认为属性的顺序不重要。