我正在制作一个扩展,它应该只使用一个链接作为用户输入一次。然后整个扩展继续在JS文件中的各种函数上使用该链接。当用户更改它时,js文件访问的值也会相应更改。 我使用以下内容但它对我不起作用
var pref_manager = Components.classes["@mozilla.org/preferencesservice;1"].getService(Components.interfaces.nsIPrefService)
function setInstance(){
if (pref_manager.prefHasUserValue("myvar"))
{
instance = pref_manager.getString("myvar");
alert(instance);
}
if(instance == null){
instance = prompt("Please enter webcenter host and port");
// Setting the value
pref_manager.setString("myvar", instance);
}
}
instance是我接受用户输入的全局变量。警报(实例)没有显示,这意味着我保存pref或提取它的方式存在一些问题。 有人可以帮我这个。我之前从未使用过偏好。所以,即使有一些小问题,我也可能无法弄明白。
答案 0 :(得分:0)
我现在没有自己的代码在我面前进行比较,但以上所有对我来说都是正确的。我的猜测是你的问题是你没有为你的偏好设置一个默认值,因为我认为 Firefox会在没有指定默认值的情况下忽略偏好。
请参阅:
https://developer.mozilla.org/en/Adding_preferences_to_an_extension
答案 1 :(得分:0)
如果首选项是字符串,请使用“pref_manager.getCharPref(”prefname“)”。你也可以:
pref_manager.getBoolPref( “为prefname”); //布尔(true / false)首选项
和
pref_manager.getIntPref( “为prefname”); //数字