我正在尝试在 Firefox 扩展中使用首选项。我能够创建和阅读这些内容,但是当我尝试在更改它们时运行函数时遇到问题。我正在使用来自MDN的建议框架(经过修改,它可以满足我的需求)。这是这里的确切代码:
observe: function(aSubject, aTopic, aData) {
if (aTopic != "nsPref:changed")
{
return;
}
switch (aData) {
case "username":
var prefManager = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
var username = prefManager.getCharPref("extensions.alexandriauplink.username");
// extensions.myextension.pref1 was changed
break;
case "password":
var prefManager = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
var password = prefManager.getCharPref("extensions.alexandriauplink.password");
alert(password);
break;
}
var password = prefManager.getCharPref("extensions.alexandriauplink.password");
var username = prefManager.getCharPref("extensions.alexandriauplink.username");
alert( "username:" + username +"|" + "password:" + password);
}
问题是,当我在选项对话框中更改首选项时,每个更改的首选项都会触发此功能 3 次。如果您能提供帮助,请提前感谢您。