【发布时间】:2018-03-24 18:12:31
【问题描述】:
多年来,我一直在 Windows 脚本中使用 JavaScript,包括 .JS 文件和 .WSF 文件,但我发现有些方法在我将它们放入外部执行的脚本时无法识别在网页上的脚本中有效的网页。我知道不同的浏览器支持不同版本的 JavaScript,MSDN 有一个页面描述了 Internet Explorer 和 Edge 浏览器版本支持哪些功能和方法:
https://docs.microsoft.com/en-us/scripting/javascript/reference/javascript-version-information
但它没有说明 Windows 脚本支持哪些方法。
Windows 脚本支持的 JavaScript 版本是否取决于 Windows 版本、计算机上安装的 Internet Explorer 版本或其他一些因素或因素的组合? JavaScript 程序内部有没有办法在执行时检测正在使用的 JavaScript 版本?
【问题讨论】:
-
您是否尝试在 Windows 脚本中实现某种功能检测?不知道为什么需要 JavaScript 版本。
-
它实际上不是 JavaScript,它是 Microsoft 的实现,称为 jscript。
-
我知道 ECMAScript 的 Microsoft 实现有时称为 JScript,但 MSDN 和 Microsoft 文档的许多其他部分可以互换使用术语 JScript 和 JavaScript。问题是当使用 Windows Scripting Host 处理 .JS 源文件和 .WSF 中的 JScript 部分时,如何确定支持 ECMAScript 的哪些功能。 Microsoft 文档没有对此进行解释。我上面帖子中的链接介绍了 IE6、IE7、IE8、IE9、IE10、IE11、Edge 和 Windows 应用商店应用程序中的功能。它没有提到 Windows 脚本宿主。
-
最初促使我提出这个问题的原因是当我尝试在独立(非 HTML).JS 文件中使用方法 Date.now() 时。 Microsoft 文档说它在 IE9-IE11、Edge 和 Windows Store 应用程序中受支持。 IE6、IE7、IE8 或任何“Quirks”都不支持它。在 64 位 Windows 7 计算机上运行的 Windows 脚本主机显然不支持它,即使它在同一台计算机上的 IE11 中的 HTML 文件中的 .JS 脚本中运行。我想知道 Windows Scripting Host 支持或不支持 ECMAScript 的其他哪些功能,以及是什么决定了它。
-
@JDMorganArkansas 这是因为在标准浏览器中(包括 Edge) JavaScript 是事实上的选择,而 JScript 和扩展的 VBScript 正慢慢被扫到地毯下。 WSH 只是另一个主机,就像 IE 是主机一样,功能集是相同的,所以如果它说“仅在 Internet Explorer 中支持”,您可以安全地在 WSH 中使用它。
标签: windows scripting wsh jscript