mozIJSSubScriptLoader

このインタフェースは、 実行時に与えられた URL の JavaScript コードを読み込み実行するために、特権を持つ JavaScript から使用されます。
28
Introduced
Gecko 1.0
継承元: nsISupports 最終更新: Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)

実装元: @mozilla.org/moz/jssubscript-loader;1。このサービスを取得するには次のコードを使用します:

var mozIJSSubScriptLoader = Components.classes["@mozilla.org/moz/jssubscript-loader;1"]
                            .getService(Components.interfaces.mozIJSSubScriptLoader);
補足: もう一つの JavaScript コードをインポートする方法は、Components.utils.import を参照してください。

メソッドの概要

void loadSubScript(in wstring url, in targetObj Optional, in charset Optional);

メソッド

loadSubScript()

スクリプトを指定された URL から同期的に読み込み、実行します。

指定されたスクリプトはシステムの規則に従って実行されます。これは、スクリプトができることに、全く制限がないことを意味します。

註: このメソッドは JavaScript からのみ呼び出されます!

void loadSubScript(
  in wstring url,
  in targetObj Optional,
  in charset   Optional, 
);
引数
url
読み込むスクリプトを指す URL。これは、ローカルの chrome: または resource:, file: URL であるべきです (バグ 307686 および バグ 418356 を参照)。

Gecko 1.9 note
(Firefox 3)

Firefox 3.0 より前のバージョンでは、data: URL が使用できましたが、セキュリティ上の問題から許可されなくなりました。

targetObj
スクリプトが実行されるためのスコープオブジェクトとして使用されるオブジェクト。デフォルトでは、呼び出し元のグローバルオブジェクトになります。
charset
読み込むスクリプトファイルの文字エンコーディングを指定する任意の文字列。省略すると、ファイルは ASCII 文字列として処理されます。

var global = this;
var obj = {};
var loader = Components.classes["@mozilla.org/moz/jssubscript-loader;1"]
                       .getService(Components.interfaces.mozIJSSubScriptLoader);
loader.loadSubScript("data:text/plain,var a=1", obj)
loader.loadSubScript("data:text/plain,this.b=1", obj)
loader.loadSubScript("data:text/plain,c=1", obj)
loader.loadSubScript("data:text/plain,function f(){}", obj)

alert(obj.toSource()); // ({a:1, b:1, f:function f() {}})
alert("a" in global); // false
alert("b" in global); // false
alert(global.c); // 1

ドキュメントのタグと貢献者

 このページの貢献者: Marsf
 最終更新者: Marsf,