我的Firefox附加组件中有一个main.js
文件,该文件需要在另一个文件中定义的类,然后添加一个工具栏项。
// lib/main.js
var widgets = require('widgets'),
disabler = require('./disabler');
var toolbarOptions = {
id: 'the-id',
label: 'The Widget',
contentURL: self.data.url('icon-16.png')
};
// Add the toolbar item to the browser. Because this is a CommonJS environment,
// this reference to the toolbar is locally scoped.
var toolbar = widgets.Widget(toolbarOptions);
我想要做的是从contentURL
文件中更改工具栏的disabler
。但是,我无法访问该文件中的toolbar
变量。
如何从toolbar
访问disabler
?
顺便说一下,我正在使用附加SDK的1.10版本。
答案 0 :(得分:2)
每个模块都在自己的上下文中运行。如果你想让另一个模块拥有变量,你应该明确地给它变量。例如,在main.js
:
var toolbar = widgets.Widget(...);
disabler.setToolbar(toolbar);
在disabler.js
:
var toolbar = null;
exports.setToolbar = function(tb)
{
toolbar = tb;
};
...
doSomething(toolbar);