在编写 Firefox XUL 扩展时,我发现我想在整个扩展中共享一些功能(业务逻辑)。存放这个的最佳位置是什么?
我可以创建某种总是首先加载的库(javascript)文件吗?
在编写 Firefox XUL 扩展时,我发现我想在整个扩展中共享一些功能(业务逻辑)。存放这个的最佳位置是什么?
我可以创建某种总是首先加载的库(javascript)文件吗?
您很可能想要创建一个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 通常更简单。