posts - 22, comments - 17, trackbacks - 0, articles - 0
  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

HTA(HTML Applications)开发记录

Posted on 2007-09-27 14:52 flashlizi 阅读(2026) 评论(0)  编辑 收藏 引用 所属分类: AJAX

最近用HTML Applications(hta)开发了一个Flash课件的XML编辑器,类似html编辑器的可视化编辑和预览flash课件的内容,最后导出为flash课件能解析的XML文件。之前并没怎么去了解hta,经过这次开发,发现用html+js再加一些activex object便可开发出一些功能不错的应用程序。

其实hta很简单,就是添加了hta标签,改变后缀名为hta的html文件。不过因为hta程序不是在浏览器中运行,因此它可以使用一些html中无法使用的activex control,这样为hta访问和操作本地文件提供了可能。而javascript的轻巧和强大也为实现各种应用解决了方法。


这里总结一些各方面的经验:

1、windows的打开、保存对话框的activex控件对象,其中comdlg.lpk文件需下载。要操作本地文件就少不了打开和保存对话框。

<!-- Create the licensing object for the common dialog activex control -->
<OBJECT CLASSID="clsid:5220cb21-c88d-11cf-b347-00aa00a28331">
    
<PARAM NAME="LPKPath" VALUE="comdlg.lpk">
</OBJECT>

<!--Create the Common Dialog Box activex control-->
<OBJECT ID="cDialog" WIDTH="0px" HEIGHT="0px"
    CLASSID
="CLSID:F9043C85-F6F2-101A-A3C9-08002B2F49FB"
    CODEBASE
="http://activex.microsoft.com/controls/vb5/comdlg32.cab">
</OBJECT>

2、由于需要可视化编辑html,因此就少不了使用dhtml的execCommand方法,想了解的可以参看DHTML手册。

3、操作XML对象应该是会经常用的。XML DOM参考地址:http://msdn2.microsoft.com/zh-cn/library/ms764730.aspx。在html中无法使用xml的save方法来保存XML到本地文件,但hta可以实现。

创建新的XML文件,如:
var doc=new ActiveXObject("Msxml2.DOMDocument.3.0");
    doc.loadXML('
<?xml version="1.0" encoding="UTF-8"?><root></root>');
这样就可以对xml对象进行dom操作,比如createNode、createElement、appendChild等等。

读取XML文件,如:
var url="example.xml";
var doc=new ActiveXObject("Msxml2.DOMDocument.3.0");
            doc.load(url);
保存XML的话,可以用doc.save(url)来保存。
只有注册用户登录后才能发表评论。