0

main.js我的Firefox 插件中有一个文件,它需要一个在另一个文件中定义的类,然后添加一个工具栏项。

// 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);

我想做的是contentURLdisabler文件中更改工具栏的。但是,我无权访问toolbar该文件中的变量。

我怎样才能访问toolbarfrom disabler

顺便说一句,我使用的是 1.10 版的附加 SDK。

4

1 回答 1

2

每个模块都在自己的上下文中运行。如果您希望另一个模块拥有该变量,那么您应该明确地将该变量提供给它。例如,在main.js

var toolbar = widgets.Widget(...);
disabler.setToolbar(toolbar);

并在disabler.js

var toolbar = null;
exports.setToolbar = function(tb)
{
  toolbar = tb;
};

...

doSomething(toolbar);
于 2012-10-05T15:55:11.520 回答