我有一个首选项并使用下面的语句来访问它的内容
var st = easyfa.branch.getComplexValue("mapstr",Components.interfaces.nsIPrefLocalizedString).data;
这引发了异常:
*Component returned failure code: 0x804b000a (NS_ERROR_MALFORMED_URI) [nsIPrefBranch.getComplexValue]*
但是在手动设置首选项的值后(通过输入about:config),错误消失了!?
答案 0 :(得分:2)
本地化首选项的默认值必须是.properties
文件的chrome URL,其中会查找首选项以找到生成的字符串。假设URL指向区域设置文件,则允许根据安装的语言更改值。
但是您似乎想要一个简单的字符串首选项,您应该使用nsISupportsString
接口检索它。
答案 1 :(得分:0)
获取未设置的首选项的值将始终抛出。您必须将其包装在try-catch
块中并相应地处理它。