动态加载JavaScript库

JScript: Dynamically load JavaScript libraries

本文关键字:JavaScript 加载 动态      更新时间:2023-09-26

我目前正在为微软JScript运行时环境编写JavaScript脚本。它不是在浏览器中,而是像SysAdmin使用VBScript那样运行。我写了很多代码,虽然其中一些代码是专门针对需要完成的任务的,但大多数代码都是为脚本提供所需功能的支持框架。我希望在未来的其他脚本冒险中使用这些代码,但就我目前的知识而言,我将不得不一遍又一遍地复制和粘贴这些迷你库,这只是一场更新噩梦,而且效率很低。我知道这是可能的动态加载JS,当我有一个windowdocument,我知道这是可能的require() JS文件在Node.js,但这是可能的在原始JScript运行时为MS?

查看Windows脚本文件(*.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库

假设您谈论的是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,但你可以创建一个。

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.");
}

我认为"host"现在应该有效地成为全局对象。