Mozilla の JavaScript 環境では、 mozIJSSubScriptLoader インターフェイスの loadSubScript() メソッドを使用して、URL から他のスクリプトを読み込むことができます。
実行中のスクリプトのスコープ オブジェクトとして使用されるオブジェクトを指定することができます。ただし、この Stackoverflow answerで説明されているように、「宣言されていない変数は引き続き外側のスコープで作成され、添え字スコープで解決できない変数について外側のスコープが検索されます。」
この回答では、代わりにComponents.utils.Sandboxを使用することをお勧めします。
ただし、このメカニズムにより、セキュリティの制限が有効になっているようです。Mozilla バグ 876089については、単純に通常の JS オブジェクトをサンドボックスに置き換えてみました。読み込まれたスクリプトは Components.utils を使用できなくなり、"Cu" としてスコープ オブジェクトに配置されます。
例外: のメソッド NamenameClass.import を呼び出す権限が拒否されました
ここで問題: Mozilla 環境で、呼び出し元のグローバル オブジェクトを介したシンボルの漏洩を防ぐだけでなく、セキュリティ上の制限を課すことなくスコープ オブジェクトに明示的に配置されたすべてのシンボルを使用できるようにする方法で、スクリプトを最適にロードするにはどうすればよいでしょうか? ?