0

在编写 Firefox XUL 扩展时,我发现我想在整个扩展中共享一些功能(业务逻辑)。存放这个的最佳位置是什么?

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

4

1 回答 1

2

您很可能想要创建一个JavaScript 代码模块。您可以使用Components.utils.import()来加载它:

Components.utils.import("chrome://myaddon/content/utils.jsm");

并在utils.jsm您定义该语句应导入哪些符号,例如:

var EXPORTED_SYMBOLS = ["Utils"];

var Utils = {
};

该模块将在第一次使用时被加载并在此之后保留在内存中 - 无论您的扩展中有多少地方使用它,都只会有一个模块实例。请注意,我使用chrome://URL 加载模块,从 Firefox 4 开始支持。文档建议使用更简洁的 URL resource://,因为模块实际上与用户界面没有任何关系 - 尽管如此,使用chrome://URL 通常更简单。

于 2012-09-11T13:42:10.243 回答