前回のIE利用法をさらに検索してた。
少しずつ分ってきた
IEのJsエンジンを作り出す
#IEのDocumentをWSHから利用する var document = new ActiveXObject('htmlfile'); window = document.parentWindow; window.alert(""); window.document.body.innerHTML += "hoge"; //Scriptタグ書出せばWSHでprototype.jsが使えるよ。
JSのエンジンを作り出す
WSHのJSを別環境で独立に生み出せる。
var engine = new ActiveXObject("ScriptControl"); engine.Language = "JScript"; js = engine.CodeObject; WScript.Echo( js.eval("aa=1") ); WScript.Echo( js.aa );// 1 が表示される
空間が違う。evalが必要っぽい。うまく使うと便利そう。IEみたくDefer指定出来ないのか。
文字列評価が不要
変数名や関数名を文字列で指定する必要がない。
今までの方法
var sc = new ActiveXObject( "ScriptControl" ); var code; sc.Language = "JavaScript"; code = "function foo(){ return 'abcd'; }"; sc.AddCode( code ); var r = sc.Run( "foo" );
Runが必要だと思ってた。今日のテストでRunが要らないと分った。