当我正在编写Firefox XUL扩展时,我发现我希望在整个扩展中共享一些功能(业务逻辑)。什么是最好的存储方式?
我可以创建一些总是首先加载的库(javascript)文件吗?
答案 0 :(得分:2)
您很可能想要创建JavaScript code module。您可以使用Components.utils.import()加载它:
Components.utils.import("chrome://myaddon/content/utils.jsm");
在utils.jsm
中,您可以定义该语句应导入哪些符号,例如:
var EXPORTED_SYMBOLS = ["Utils"];
var Utils = {
};
模块将在首次使用时加载并在此之后保留在内存中 - 无论您的扩展程序中有多少位置使用它,都只有一个模块实例。请注意,我使用chrome://
URL加载模块,从Firefox 4开始支持此操作。文档建议使用更清晰的resource://
URL,因为模块实际上与用户界面无关 - 仍然使用chrome://
网址通常更简单。