1

前几天,我向 Mozilla Addons 提交了一个插件进行初步审查。审稿人给了我这个建议:

尽可能使用 JavaScript 模块。这些只有在尚未加载时才会被导入,并减少内存消耗和响应时间。请参阅 https://developer.mozilla.org/en-US/docs/JavaScript_code_moduleshttps://developer.mozilla.org/en-US/docs/JavaScript_code_modules/Services.jsm 。Services.prefs ...对您来说很有趣。

现在,我正在使用它来加载我的首选项:

var prefs = Components.classes["@mozilla.org/preferences-service;1"] .getService(Components.interfaces.nsIPrefBranch);

然后...

var mypref= this.prefs.getBoolPref("extensions.myaddon.mypref");

现在,我查看了页面参考,不确定如何按照审阅者的建议进行操作。我找不到如何做到这一点的例子。我能做的最好的就是添加这个:

Components.utils.import('resource://textlink-modules/prefs.js'),

...但是在那之后我不知道如何引用 mypref 。我是插件新手,所以如果有人可以帮助我,那就太好了。我怎么能按照他的方式做呢?

4

1 回答 1

4

您不能将您prefs.js的模块作为模块导入,因为它不是一个模块。

您可以并鼓励您做的是导入一次 Services 模块,然后通过全局变量 Services 引用它提供的各种服务。

编辑:

Components.utils.import("resource://gre/modules/Services.jsm");
var prefs = Services.prefs;
var mypref = prefs.getBoolPref("extensions.myaddon.mypref");
于 2012-11-10T12:31:48.307 回答