为了账号安全,请及时绑定邮箱和手机立即绑定

HTA中的JavaScript版本

HTA中的JavaScript版本

沧海一幻觉 2019-08-23 09:37:47
HTA中的JavaScript版本有谁知道HTA文件使用的是什么版本的JavaScript。目前正在创建一些脚本文件 - 并尝试使用 Object.defineProperty当作为HTA运行时 - 它会错误地指出Object不支持此属性或方法。我将它作为HTM文件运行只是为了检查 - 并且根本没有问题。所以我只能假设mshta.exe使用较旧的JavaScript引擎。任何人都能证实这一点吗?
查看完整描述

1 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

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


虽然HTA由mshta.exe运行,但是IE为应用程序提供了JavaScript和渲染引擎,因此后来关于JS版本的所有内容都代表了盒子模型,定位,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中引入)。


您可以在MSDN上阅读有关该主题的更多信息:HTML应用程序简介(HTA)

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

JavaScript版本信息

Internet Explorer中的CSS兼容性

当您想使用最新的可用版本时,这是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);

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


查看完整回答
反对 回复 2019-08-23
  • 1 回答
  • 0 关注
  • 538 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信