HTA中的JavaScript版本
有谁知道HTA文件使用的JavaScript版本。
当前正在创建一些脚本文件-并尝试利用 Object.defineProperty
当作为HTA运行时-指出对象不支持该属性或方法的错误。我已经将其作为HTM文件运行以进行检查-完全没有问题。
因此,我只能假设它mshta.exe
使用的是旧版JavaScript引擎。有人可以确认吗?
回答:
使用的JavaScript(或JScript)版本取决于三件事:已安装的Interner Explorer版本,使用的文档类型声明(DTD)和x-ua-
compatible元标记。
尽管HTA由mshta.exe运行,但是IE为应用程序提供了JavaScript和渲染引擎,因此稍后有关JS版本的所有内容都将代表BOX模型,定位,CSS等,以及可用的API和HTML元素。
如果您已经安装到你的系统IE11,你可以使用使用最新版本的JavaScript <!DOCTYPE html>
和<meta http-
equiv="x-ua-compatible" content="ie=edge" />。
当然,将设置content
为IE=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中引入)。
当您要使用最新的可用版本时,这是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版本 的全部内容, 来源链接: utcz.com/qa/421064.html