gpt4 book ai didi

HTA 中的 JavaScript 版本

转载 作者:可可西里 更新时间:2023-11-01 02:05:30 25 4
gpt4 key购买 nike

有谁知道 HTA 文件使用的是哪个版本的 JavaScript。

目前正在创建一些脚本文件 - 并尝试使用 Object.defineProperty

当作为 HTA 运行时 - 它会出错,指出 Object 不支持此属性或方法。我将其作为 HTM 文件运行只是为了检查 - 完全没有问题。

所以我只能假设 mshta.exe 使用的是较旧的 JavaScript 引擎。谁能证实这一点?

最佳答案

使用的 JavaScript(或 JScript)版本取决于三件事:安装的 Interner Explorer 版本、使用的文档类型声明 (DTD) 和 x-ua-compatible元标记。

虽然 HTA 由 mshta.exe 运行,但 IE 为应用程序提供了 JavaScript 和渲染引擎,因此后面所说的关于 JS 版本的所有内容,代表盒模型、定位、CSS 等,以及可用的 API 和 HTML 元素。

如果您的系统中安装了 IE11,您可以使用 <!DOCTYPE html> 来使用最新版本的 JavaScript。和 <meta http-equiv="x-ua-compatible" content="ie=edge" /> .

自然地,设置 contentIE=edge不会覆盖已安装的 IE 的旧版本,使用最新的可用模式。而不是 edge ,您可以使用 IE 版本号在使用较新的 IE 运行时降级应用程序。

省略 DTD 应该总是让应用程序以 Quirks 模式运行,在 HTA 的情况下类似于 IE5。但是,在这种情况下,可以使用 x-ua-compatible 更改文档模式。 ,但至少在 IE8 和 9 中存在一些不一致。如果不需要 Quirks 模式,使用 DTD 总是最安全的。

有 DTD,但没有 x-ua-compatible元标记 HTA 在 IE7 标准模式下运行(不支持 object.defineProperty() ,它在 IE9 中引入)。

您可以在 MSDN 上阅读有关该主题的更多信息:Introduction to HTML Applications (HTAs)

JS 和 CSS 的 IE 版本信息可以在 MSDN 找到:

JavaScript version information

CSS Compatibility in Internet Explorer

当您想使用最新的可用版本时,这是 HTA 文件的“安全开始”:

<!DOCTYPE html>
<html>
<head>
<title>HTA</title>
<meta http-equiv="x-ua-compatible" content="ie=edge" />
// All link, style and script tags, or any code should be placed below the five lines above

您还可以使用 ScriptEngine查找最新脚本版本的函数:

ver = ScriptEngine() + ' V ';
ver += ScriptEngineMajorVersion() + '.';
ver += ScriptEngineMinorVersion() + '.';
ver += ScriptEngineBuildVersion();
alert(ver);

注意,这里只显示浏览器提供的最新版本,文档模式对返回值没有影响。

关于HTA 中的 JavaScript 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19567887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com