このインタフェースは、 実行時に与えられた 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