プロが教えるわが家の防犯対策術!

javascriptを勉強していて演算した結果をテキストファイルにして、その結果をテキストファイル内に書き込んで新しくデスクトップに作成するというプログラムを作りたいと考えています。
ですが、まずは以下の条件を満たすプログラムの内容を教えていただきたいと思います。

私はHTMLと同時にjavascriptを作っているのですがとりあえず、

・「テキストファイルの作成」というボタンをHTML内に作ります。
・そのボタンを押すとjavascriptのfunctionが動作し、「テキストの書き込みに成功しました」という内容が書かれたテキストファイルがデスクトップに新たに作成される。

というプログラムを知りたいです。

基礎的な原理だけを知りたいので上の条件を満たすプログラムを教えていただきたいと思います。
テキストファイルをデスクトップに作る方法と、作るテキストファイルにどのようにしてテキスト内容を書き込めばいいのか分かりません。
HTMLの部分がめんどくさければjavascriptの部分だけでも構いません。
よろしくお願いします。

A 回答 (7件)

#2 です。



勉強目的ということでしたのでブラウザ(IE)依存で問題ないと考えていました。WSH でも hta でも JScript は利用できるはずなので。
質問者さんは以下の希望を持っていると想像していました。

・JavaScript だけでテキストファイルに出力したい
・ローカルで実行するので、ブラウザ依存で構わない (Webサイト制作が目的ではない)

そうではなく、

・Webサイト制作する上での JavaScript を知りたい
・標準的な JavaScript を学びたい (ブラウザ依存はしたくない)
・JavaScript 以外の言語(PHPなど)を学ぶこともいとわない

ということでしたら、私の見込み違いですのでどうぞスルーしてください…。
サーバサイドでファイル出力するのが一般的な手法だと私も思います。
    • good
    • 2

>演算結果を確認するためにだけファイルを作成しようとしている印象を受けます。



すみません。そんな難しい事考える必要ありません。

クライアントサイドスクリプトなら

新しいウインドウ又は、フレームに

document.write()

xxxx.value=演算結果

alert();

xxxx.text =

ですみますよね。

サーバーサイドなら、

普通に標準出力にだせばいい(もちろんHTMLオブジェクト先でいい)。

両方の組み合わせでも同じ。


だって、サーバーサイドからDLした物は、そのままブラウザの機能使って「ファイルに保存」で目的は達成できる。


クライアントでのファイル入出力の可能性を導きけばいいだけの話。

デバック方法は、上記で十分です(サーバー側のサービスや、APIのでバックなら別だが)。
    • good
    • 0

補足となります。



yyr446さんの仰るとおりです。

ファイルを作成したいという目的であれば、
サーバー側スクリプトにファイル出力を任せるのが現実的です。

さて、質問を改めて読むと「演算した結果をテキストファイルにして」という部分に
演算結果を確認するためにだけファイルを作成しようとしている印象を受けます。

この場合、試験的に作成した演算結果のファイルを後から削除しなければならないので、
ブラウザに実装されているデバッガに表示させる ― console.log() を活用する ― と、
コピー&貼り付けのような方法でテキストファイルに記録を取ることもできます。

多くの開発者はデバッガを活用されていると思います。

* IE…開発者ツール
* Firefox…firebug
* Opera…Dragon Fly
* Chrome/Safari…DevelopersTools

どれも、有効化した上でコード内に
console.log( 演算結果を示す変数1, 変数2 ); とか、
console.log( "エラーテキスト" ); のように記述するだけになります。
    • good
    • 0

既に回答はでてますが、


javascriptの勉強が目的なら、javascriptでのファイル入出力の方法をあれこれ模索するのは無意味です。(特にクライアント側のデスクトップでの操作を想定してるなら)

 インターネットじゃないローカル環境で、ユーザーインターフェースにブラウザーを使いたいだけなら、HTMLとJSCRIPT(ActiveX使用)で作って、拡張子をHTAにするってのもありますが、それならVBS(Vbscript)で書いた方が楽です。VBSでかくなら無理にブラウザー使わなくても、Windowsの部品が使えますから、WSHにしてしまった方が無駄が省けます。それなら、昔ながらのBATファイルでも出来ます。見栄えよくしたいなら、VBやVBAでやればよいんです。
 ネットを介しての処理なら、javascriptでこだわるより、サーバーサイドのプログラム(PHP,perl,JAVA,VB)との連携について勉強した方がよいでしょう。
    • good
    • 0

>、Windows に限定していいのであれば



ブラウザ依存です。ブラウザによって対応が違うので、ほぼIEのみです。

http://www.google.co.jp/search?hl=ja&q=%E3%83%96 …
(ほとんどJavaScriptがヒットするが我慢してみるとちゃんと在る、注意書きが)


ただ、他にもXML DOM対応のブラウザであれば、XMLとして出力が可能。XML操作で通常load とsaveのメソッドは、ほぼ対応しているので。もちろん、テキストですし、中身はHTML形式でもXMLでも、ただの文字列でもかまわない。

http://msdn.microsoft.com/en-us/library/ms753769 …

また、API関連で言えば、

http://msdn.microsoft.com/ja-jp/library/cc197062 …

です。XML以外は、IE、wscript, cscriptの移植に頼る事が大きい。
    • good
    • 0

テキストファイル出力ですが、Windows に限定していいのであれば JScript が妥当だと思います。


http://msdn.microsoft.com/ja-jp/library/cc392177 …
http://msdn.microsoft.com/ja-jp/library/cc428071 …
    • good
    • 0

現在のブラウザ事情では、ボタン操作によるファイル作成の回答は得られないと思います。


理由ですが、2つあります。

1)セキュイリティ上の問題でJavaScriptからは端末上のファイルを作成したり変更できないため。
2)Firefoxなどの新技術を試験的に実装しているブラウザでは HTML5関連技術である FileAPI が活用できるが、策定中の仕様で「不変の回答」を求めることが出来ないため。

>>プログラムを知りたい
FileAPI関連では同感。
検索すれば、「FileAPIでテキストを書き換えた」というブログエントリもありましたが、
策定中の仕様である以上、この場で回答できるものではないと思います。

代替案として2つ
1)ボタン操作を諦め、dataスキームを使う
TEXTAREAにある内容を dataスキームに処理して A要素のリンクとして生成。
このリンクを右クリックして「名前を付けて保存」を選ぶという方法なら
現在リリースされる全ての最終安定版ブラウザでもローカルに保存できます。
ボタン操作という要件は外しますが。

2)JavaScript以外の方法をとる。
IEに限ればJavaScriptという要件を外しますが、VBScriptを検討できると思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!