使用.NET,我可以编写一个托管脚本引擎的应用程序,该脚本引擎符合Microsoft的IActiveScript约定.这包括来自Microsoft的JScript和VBScript,以及PerlScript和RubyScript,我不知道第三方还有什么.
在代码中执行此操作的方法是这样的:
Type engine = Type.GetTypeFromProgID(progId, true);
_engine = Activator.CreateInstance(engine) as IActiveScript;
Run Code Online (Sandbox Code Playgroud)
其中progId可以采用Javascript,JScript,ECMAScript,VBScript等值.运行cscript.exe时可以执行类似的操作,在命令行中使用该//E选项指定progId .例如,这个命令:
cscript.exe <file> //e:JScript
Run Code Online (Sandbox Code Playgroud)
..将通过JScript引擎运行指定的文件,无论其扩展名如何.
在我的机器上,如果我查看HKLM\SW\Classes\,三个progIds {Javascript,JScript,ECMAScript}都指向相同的CLSID,我猜这是JScript 5.8脚本引擎:{f414c260-6ac0-11cf-b6d1-00aa00bbbb58}
是否有ProgId或CLSID我可以指定运行IE9的Javascript引擎,又称"Chakra"?
IE9的引擎是否仍然被IActiveScript加载?
Microsoft的文档表明它确实如此,但没有指定ProgId或CLSID.
首先,一个警告.主脚本不在网页中运行.我将使用Windows脚本宿主在Windows中运行.js文件.
问题: 我想创建一个包含许多对象的javascript"库",每个对象都有许多功能.我希望这个库会随着时间的推移变得相当大,并希望将它保存在一个单独的javascript文件中(我们称之为Library.js).我想从另一个脚本访问Library.js中的对象(让我们称之为User.js).
本质上,我正在寻找类似于C/C++"包含"范例的东西.
反正有没有在javascript中实现这个?(请记住,这不是基于网络的)
据 Microsoft 称,javascript 现在是 Visual Studio 和“通用 Windows 平台”中的一等公民,但我还没有找到一种方法来升级 IIS/Classic ASP 脚本中使用的十年前的 JScript 引擎。所以,我的问题是,有谁知道是否有办法做到这一点?
为什么?
例如,我想在经典 ASP 页面(使用 javascript 而不是 VBScript)中使用 JSON.parse。目前,我包含了 Crockford 的旧 json 脚本的副本,这还可以,但现在应该没有必要了。