如何设置和访问package.json文件中定义的firefox插件首选项。
我的package.json文件中有以下首选项如何设置和访问package.json文件中定义的firefox插件首选项。,firefox,firefox-addon,firefox-addon-sdk,Firefox,Firefox Addon,Firefox Addon Sdk,我的package.json文件中有以下首选项 "preferences": [ { "name": "api_url", "title": "Install url", "type": "string", "value": "https://google.com" }, { "name": "api_username",
"preferences": [
{
"name": "api_url",
"title": "Install url",
"type": "string",
"value": "https://google.com"
},
{
"name": "api_username",
"title": "Install username",
"type": "string"
},
{
"name": "api_key",
"title": "API key",
"type": "string"
}
]
我的main.js文件中有以下代码
const {Cc,Ci} = require('chrome');
var prefs = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefService);
prefs = prefs.getBranch("extensions.myExtension.");
console.log(prefs.getCharPref("api_url"));
当我执行代码时,会显示以下错误
Message: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIPrefBranch.getCharPref]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: resource://gre/modules/XPIProvider.jsm -> jar:file:///tmp/tmpJvzkDz.mozrunner/extensions/jid1-zsQS9x5zIenFuw@jetpack.xpi!/bootstrap.js -> resource://gre/modules/commonjs/toolkit/loader.js -> resource://jid1-zsqs9x5zienfuw-at-jetpack/myExtension/lib/main.js :: exports.main/<.onLoad/</<.success :: line 89" data: no]
消息:[异常…”组件返回故障代码:0x8000ffff(NS\U错误\U意外)[nsIPrefBranch.getCharPref]“nsresult:“0x8000ffff(NS\U错误\U意外)”位置:“JS框架::resource://gre/modules/XPIProvider.jsm ->罐子:file:///tmp/tmpJvzkDz.mozrunner/extensions/jid1-zsQS9x5zIenFuw@jetpack.xpi!/bootstrap.js->resource://gre/modules/commonjs/toolkit/loader.js -> resource://jid1-zsqs9x5zienfuw-at-jetpack/myExtension/lib/main.js ::exports.main/您的错误在这一行:
prefs=prefs.getBranch(“extensions.myExtension”);
您必须在文件中查找并找到加载项的id。它应该以jid
然后像这样:
prefs=prefs.getBranch(“extensions.jid1-lwNbwJJiiMXM4A@jetpack.”;
但如果您使用的是插件sdk,请使用简单的pref服务:
require('sdk/simple-prefs')。prefs['api\u-url']
我决定使用simple-prefs-api。如果我不要求自己以外的任何人的首选项,就没有理由使用组件类。