以前、WSH/JScriptでファイルのダウンロードをする方法をメモしましたが、今回は、その非同期バージョン。HTAなんかを作ったときは、こちらの方がUIが固まらなくて便利です。
// ファイルをダウンロードする関数 function downloadFile(url, savefile, callback) { // HTTP通信を行うためのオブジェクト var http = new ActiveXObject("Msxml2.XMLHTTP"); // コールバックを登録する http.onreadystatechange = function () { if (http.readyState == 4) { if (http.status == 200) { // バイナリファイルを保存するためのオブジェクト var strm = new ActiveXObject("Adodb.Stream"); var adTypeBinary = 1, adSaveCreateOverWrite = 2; // 保存する strm.Type = adTypeBinary; strm.Open(); strm.Write(http.responseBody); // 書き込み strm.Savetofile(savefile, adSaveCreateOverWrite); // 保存 callback(true); } else { callback(false); } } }; // URLにアクセスする http.open("GET", url, true); http.send(null); // 送信 }