4

私は現在、MicrosoftJScriptランタイム環境用のJavaScriptスクリプトを書いています。ブラウザではなく、SysAdminがVBScriptを使用するように実行されます。私はたくさんのコードを書きました、そしてそれのいくつかは達成される必要があるものに固有ですが、それの大部分はスクリプトがそれがする必要があることをするためのフレームワークをサポートしています。このコードの合計を他の将来のスクリプトの冒険で使用したいのですが、私の現在の知識に関しては、これらのミニライブラリを何度もコピーして貼り付ける必要があります。 2つ目は、非効率的です。windowまたはがあるときにJSを動的にロードできることはdocument知っていrequire()ますが、Node.jsでJSファイルをロードできることは知っていますが、これはMS用の生のJScriptランタイムで可能ですか?

4

2 に答える 2

4

Windowsスクリプトファイル(* .wsf)形式を調べます。その機能の1つは、あなたが説明しているようなインクルードを可能にすることです。リンクされたドキュメントからの例:

<job id="IncludeExample">
   <script language="JScript" src="FSO.JS"/>
   <script language="VBScript">
      ' Get the free space for drive C.
      s = GetFreeSpace("c:")
      WScript.Echo s
   </script>
</job>

ここで、「FSO.JS」にはJScriptライブラリが含まれています。

于 2013-01-15T03:57:12.740 に答える
0

WSHについて話していると仮定すると、ファイルをロードして内容を評価できます。これは、ファイルを含めるのとほとんど同じです。

var incfso=new ActiveXObject("Scripting.FileSystemObject"); 
include = function(x) {
    eval(incfso.OpenTextFile(x,1).ReadAll());
}

ソース: http: //www.mailsend-online.com/blog/wsh-javascript-includes.html

jscriptの「window」のようなグローバルオブジェクトは見つかりませんでしたが、作成することはできます。

var host = this;
var test = "hello-world";

var messagebox = new ActiveXObject("wscript.shell");

if (host.test) {
    messagebox.Popup("host.test exists, value = " + host.test);
} else {
    messagebox.Popup("host.test does not exist.");
}

「ホスト」は事実上グローバルオブジェクトになるはずだと思います。(とにかく例は私のために働きます)

于 2013-01-14T14:13:12.767 に答える