HTML应用程序
- 本文介绍了微软的专利HTA實作。有关HTML5的缓存清单信息(Cache Manifest),请参考 Cache manifest in HTML5(英语:Cache manifest in HTML5)。
HTML应用程序(英語:HTML Application,缩写:HTA)是一个使用HTML和動態HTML构建的Microsoft Windows应用程序,运行在Internet Explorer中,并且支持其它的脚本语言,比如VBS和JavaScript。HTML用来创建用户介面,脚本语言则用来构建程序主体。HTA运行时不受浏览器安全模型的限制,实际上,它就像是一个被“完全信任”的应用程序。
大部分HTA執行檔的后缀为.hta
。
HTA的执行器在1999年被引入Microsoft Windows,同时跟隨著Microsoft Internet Explorer 5被發布出來。[1]2003年12月9日,这一技术被申请了专利。[2]
使用
HTA给予开发者HTML和高级的脚本语言的共同特性。在Microsoft Windows中使用HTA作為系统管理工具,無論从原型到“全面”的应用都非常受微软的系统管理者欢迎,特别是在灵活性和开发的速度非常關鍵的環境中。[3]
环境
执行
![](http://upload.wikimedia.org/wikipedia/commons/0/03/HTA-Hello_World_example.png)
mshta.exe产生的例子
在圖形化介面下双击HTA文件,或是在命令提示符下鍵入mshta [HTA檔名]
皆可以透過mshta.exe
执行HTA文件。mshta.exe會与Internet Explorer同时安装。mshta.exe
通过動態載入Internet Explorer的HTML渲染引擎mshtml.dll来执行HTA檔,同时运行的还有需要的语言引擎(例如 vbscript.dll)。
HTA被视为带有.exe
扩展名的可执行文件。 在当该文件被mshta.exe运行 (或该文件被双击),它就会立即运行。当被远程用浏览器运行时,用户将会被询问,在HTA被下载之前,用户可以选择下载或不下载;如果选择保存,它可以简单的被按需运行。[4]
每个HTA被默认和呈现为“标准模式内容(IE7标准模式)和怪癖模式内容(IE5怪癖模式)”,但呈现方式可以被X-UA-Compatible
标签更改。[5]
HTA引擎(mshta.exe)依赖于Internet Explorer。从Windows Vista开始,用户可以从系统中移除Internet Explorer,但它将使引擎停止工作。
HTA被Internet Explorer 5 至 9完美支持。其他版本,例如10 和 11,仍然支持HTA但被某些小功能关闭。
安全注意事项
当一个常规的HTML文件被执行时,执行权限被限制在网页浏览器的安全模式,也就是说,它被限制在与服务器通信的范围,只操纵页面的对象模型(常常表现为验证表单/创建有趣的视觉效果)并且读/写Cookie。
另一方面,HTA被运行为一个完全信任的应用程序,因此具有比普通的HTML文件更多的特权;举一个例子,HTA 可以创建、重命名、删除、并且注册一个实例。尽管HTA在这个“被信任的”环境中运行,查询Active Directory依然可以看到Internet Explorer域的错误信息。
开发
要定制一个HTA的特定外观,一个可选的标签hta:application
在 HEAD
中被加入。这个标签公开了一组属性,可以控制程序外观,程序图标等,并且提供对参数(命令行)的控制来启动HTA。[6]除此以外,HTA 和一个HTML页面的格式是相同的。
任何文本编辑器都可以用来创建HTA。可以从微软获得具有特殊功能的编辑器来开发HTA[7] 或者从第三方获得。[8]
一个存在的HTML文件(例如后缀为.htm
或 .html
的文件)可直接将文件后缀改为.hta
来获得HTA格式的文件。
例子
这是一个Hello World程序在HTA中的实现过程:
<HTML> <HEAD> <HTA:APPLICATION ID="HelloExample" BORDER="thick" BORDERSTYLE="complex"></HTA:APPLICATION> <TITLE>HTA - Hello World</TITLE> </HEAD> <BODY> <H2>HTA - Hello World</H2> </BODY> </HTML>
另请参阅
- Active Scripting
- Chromium Embedded Framework
- Google Chrome extension
- Intranet
- Firefox OS
- XUL 和 XULRunner - 一个Mozilla的跨平台应用程序,它的语言和环境与HTML应用程序的机制相类似。
- Apache Cordova
- Pop-up ad
参考资料
- ^ Article ID:200874 in Microsoft Support (页面存档备份,存于互联网档案馆),in Microsoft Support Knowledge Base
- ^ Microsoft wins HTML application patent. [2016-04-02]. (原始内容存档于2019-10-17).
- ^ Introduction to HTML Applications (HTAs) (页面存档备份,存于互联网档案馆), in MSDN Library
- ^ Why Use HTAs (页面存档备份,存于互联网档案馆), in MSDN Library, Introduction to HTML Applications
- ^ [1] (页面存档备份,存于互联网档案馆) Introduction to HTML Applications (HTAs) - Compatibility
- ^ HTA:APPLICATION Object (页面存档备份,存于互联网档案馆), in MSDN Library, the complete specification of the tag
hta:application
- ^ HTA Helpomatic. [2016-04-02]. (原始内容存档于2010-03-25).
- ^ HTAEdit, an editor for HTAs with a built-in debugger. [2016-04-02]. (原始内容存档于2016-04-09).
外部链接
- HTML Component (HTC) Reference at MSDN(页面存档备份,存于互联网档案馆). An HTC encapsulates specific functionality or behavior within HTAs.
- The Script Center(页面存档备份,存于互联网档案馆), The Script Center, home of Hey, Scripting Guy! Blog
- Learn About Scripting for HTML Applications (HTAs)(页面存档备份,存于互联网档案馆), 一个学习HTA的网站
|