HTA - JavaScript+IEを使ったWindowsアプリケーション

厳密にはJScript Version 5.0以降。XMLHttpRequestが注目され始めたけど、
JavaScriptを使ったWindownアプリケーション作れねーかなと思ったらこれ。HTA。

HTML Applicationの略らしい。
IE5.0から出てきた。
IE5.0はtry-catchが使える。document.getElementByIdが無条件に使える。
つーことはDOM対応。XML取得はXMLHTTPじゃなくて、Microsoft.XMLDOMで可(試してないけど)。
CSSもある程度使えるが、border-cssが使えず、結構厳しめ。
filter系はDirectX使わないやつなら対応。

HTA:APPLICATIONタグ
http://www.geocities.jp/kiaswebsite/hta/hta_application.html

では、簡単なやつ。

<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="Content-Style-Type" content="text/css">
<hta:application maximizeButton="no" scroll="no" innerBorder="no" 
contextMenu="no" border="dialog"></hta:application>
<style type="text/css"><!--
* { cursor: default; overflow: hidden; }
body { margin: 0px; padding: 0px; background: ThreeDFace; }
form { margin: 10px; }
input { width: 290px; height: 190px; font-size: 12pt; }
--></style>
<script type="text/javascript"><!--//<![CDATA[
window.resizeTo(320, 240);
//]]>--></script>
<title>HelloWorldApplication</title>
</head>
<body>
<form>
<input id="button1" type="button" value="Hello, World"
onclick="javascript:alert('Hello, World!')">
</form>
</body>
</html>

UTF-8形式、hogehoge.htaとファイル名にして、実行とな。
と、こんな感じに表示されたぞ。

ここでボタンを押すと、

IE5.0の時のHTAではinnerBorder="no"が適用されなかったり、
overflow: hiddenしないと、スクロールバーが出たりするんで注意。
あとHTAの部品はIEの文字サイズに依存するのでこれも注意。

いやはや、これは簡単。
windows.hなんか知らねーけど、JavaScriptなら使えるゼという粋な方には、オススメ。
デメリットは遅い、ソースが常にオープンだけど、手軽に作れるので、オススメ。