应放置Firefox扩展中的实用程序功能

时间:2012-09-11 12:25:49

标签: firefox firefox-addon xul

当我正在编写Firefox XUL扩展时,我发现我希望在整个扩展中共享一些功能(业务逻辑)。什么是最好的存储方式?

我可以创建一些总是首先加载的库(javascript)文件吗?

1 个答案:

答案 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://网址通常更简单。