- PR -

JavaScriptからActionを起こしたい。

投稿者投稿内容
さく
ベテラン
会議室デビュー日: 2004/06/11
投稿数: 74
投稿日時: 2005-01-07 15:00
あけましておめでとうございます。

返答ありがとうございます。大変参考になります。

悪戦苦闘の末、だいぶ思った通りの物ができるようになってきました。
みなさまのアドバイスのお陰ですm(_ _)m。

undefineダイアログ表示の件ですが、

msxml4をダウンロードしたら表示されなくなりました。
古いmsxmlで表示されていたみたいです。

話が変わるのですが、サーバで作成したファイルを
クライアントに自動的に任意の場所にダウンロードしたいのですが
任意の場所(クライアントのパス)指定する方法が分かりません。

ご教授下さい。宜しくお願いします。



さく
ベテラン
会議室デビュー日: 2004/06/11
投稿数: 74
投稿日時: 2005-01-17 20:21
昨年のトピックですが、修正改造となりました。
(ユーザ側でファイルをリンクしてもらいダウンロードしてもらう形にした
のですが、お客さんから自動化できないかなっていう話があったので)

サーバで作成したファイルをクライアント側に自動ダウンロードする
JavaScriptを検討&作成しています。

下記ソースを作成したのですが、2つ問題が発生して
行き詰まっています。

// Start
win = windows.open(action, ...., ....);// 子画面を呼び出して、サーバで作成した
                    // ファイルをダウンロード(inline)。
// 子画面には、データが表示されます。

var url = "http://localhost:8080/xxxx/xxxx.do?file=sample.dat"
                   // 子画面のURL
                    // sample.dat はサーバで作成したファイル
var objHttp = new ActiveXObject("Microsoft.XMLHTTP") ;
objHttp.Open("GET", url, false, false) ;
objHttp.Send() ;

var wrtfile = "C:\\FOLDPATH\\" + filename ;
var crtFile = fso.CreateTextFile(wrtfile, true, false) ;

crtFile.WriteLine(objHttp.responseText) ;

// End

問題1
 objHttp.responseText のデータが文字化けしてしまう。
 文字化けしない方法は何かあるのでしょうか?
 文字化けのしくみが理解できていないので。
 (どこでコードが変換されているのかなど?)
子画面に表示されているデータは文字化けしていません。

問題2
 最後のファイル書き込み(WriteLine)がエラーになってしまう。
 responseTextの型とWriteLine()のパラメタの型が一致していない
 からだと思うのですが、キャストの方法が分かりません。
 (string)responseTextなど、いろいろやったのですが…。

ご教示お願いします。
さく
ベテラン
会議室デビュー日: 2004/06/11
投稿数: 74
投稿日時: 2005-01-18 11:43
自己解決しました。
かなり基本的な事でした。m(_ _)m。

var xdoc = new ActiveXObject("MSXML2.DOMDocument");
xdoc.async = false;
xdoc.load(inputfile);
xdoc.save(wrtfile);
win.close() ;

で、OK牧場でした。

objHttp.responseTextの文字化けは、responseText自体が、UTF−8のみしか
格納できないからみたいでした。

ファイル書き込みが拒否されるのは、多分、バイナリデータを
アスキーモードで書き込もうとしたからかと思われます。

とんでもない所に行って、なんとか本道の脇にある砂利道に戻ってきました。
本道にできるだけ近くにいければいいなって思っています。
お騒がせしました。

スキルアップ/キャリアアップ(JOB@IT)