|
/m /xでできない場合というのは、スクリプトの実行中は、同時にスクリプトの実行はできないようになっていました。
エラーメッセージを出せるようにできないか検討します。
execmacroのようなメソッドは無いですが、一応ファイルを読み込んでevalすればできなくもないようでした。
例:
---------------------------
//C:\Folder\a.js
message("This is a.js");
var strGlobal = "Set strGlobal in a.js";
(function(){//Begin JScript local scope
var strLocalA = "Set strLocalA in a.js";
execJs( "C:\\Folder\\b.js" );
message(strGlobal);
message(strLocalA);
}());//End JScript local scope
function execJs( strJsFile ) {
var strJsText = loadTextFileUtf16( strJsFile );
eval( strJsText );
}
function loadTextFileUtf16( strJsFile ) {
var fso = new ActiveXObject("Scripting.FileSystemObject");
var file = fso.OpenTextFile(strJsFile,1,0,-1/*UTF-16*/);
var strText = file.ReadAll();
file.Close();
file = null;
fso = null;
return strText;
}
---------------------------
//C:\Folder\b.js(UTF-16で保存する必要があります)
message("This is b.js");
strGlobal = "Set strGlobal in b.js";
strLocalA = "Set strLocalA in b.js";
---------------------------
最近BOMなしUTF-8が台頭してきていて、ファイル読み込みのエンコード指定がちょっと面倒ではあります。
なので例ではUTF-16にしています。
秀丸エディタV9.18β版でJavaScript対応していて、execjsやhidemaru.loadTextFileで似た手法もやろうとしているので、どちらもloadTextFileというメソッドでShift-JIS/UTF-8/UTF-16の3パターンは簡単に読み込めるようにしようと思います。
|
|