无法设置bool simple-prefs

时间:2013-11-25 00:41:27

标签: javascript firefox firefox-addon firefox-addon-sdk preference

这是我想要设置的偏好:

{
        "name": "datestamp",
        "title": "Date stamp?",
        "type": "bool",
        "value": true
    }

下载插件代码,

preference.js

var preference = require("simple-prefs");

exports.set = function(preferenceTemp, value){
    console.log(value);
    preference.prefs[preferenceTemp] = value;
}

main.js

Preference = require("./Preference")

Preference.set('datestamp', true);

尝试执行时控制台出错:

console.error: addon: 
  Message: [Exception... "Component returned failure code: 0x8000ffff 
  (NS_ERROR_UNEXPECTED) [nsIPrefBranch.setComplexValue]"  nsresult: "0x8000ffff 
  (NS_ERROR_UNEXPECTED)"  location: "JS frame :: resource://gre/modules/XPIProvider.jsm
    -> jar:file:///tmp/tmpuc82Vi.mozrunner/extensions
    /addon@bobbyrne01.org.xpi!/bootstrap.js -> resource://gre/modules/commonjs/toolkit
    /loader.js -> resource://gre/modules/commonjs/sdk/preferences/service.js :: set :: 
    line 92"  data: no]

1 个答案:

答案 0 :(得分:1)

问题是,我在代码中的其他地方传入一个未设置为布尔值的字符串 这就是诀窍:

Preference.set('datestamp', 'true' === "true");