JScript:动态加载JavaScript库

时间:2013-01-14 13:45:46

标签: javascript jscript

我目前正在为Microsoft JScript Runtime Environment编写JavaScript脚本。它不是在浏览器中,而是像SysAdmin一样运行将使用VBScript。我编写了很多代码,虽然其中一些代码专门针对需要完成的内容,但大多数代码都支持脚本框架来完成它需要做的事情。我想在其他未来的脚本冒险中使用这些代码,但就我目前的知识而言,我将不得不一遍又一遍地复制和粘贴这些迷你库,这对于一个人来说只是一个更新的噩梦。二,效率低下。我知道当我有windowdocument时可以动态加载JS,我知道Node.js中的require() JS文件是可能的,但这在原始JScript运行时是可行的对于MS?

2 个答案:

答案 0 :(得分:4)

查看Windows Script File (*.wsf)格式。它的一个特点是允许像你描述的包含。从链接文档中获取的示例:

<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库。

答案 1 :(得分: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.");
}

我认为“主持人”现在应该有效地成为全球对象。 (无论如何,这个例子对我有用)