Posted on 2007-09-27 14:52
flashlizi 阅读(2017)
评论(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)来保存。