0

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を使用しています。

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 に答える