- ベストアンサー
javascriptでテキストファイルを作成する方法とテキスト内容の書き込み方法
- javascriptを使用してテキストファイルを作成し、テキスト内容を書き込む方法を解説します。
- HTML内に「テキストファイルの作成」というボタンを作り、そのボタンを押すとjavascriptのfunctionが動作します。このfunction内で、テキストファイルの作成と書き込みが行われます。
- テキストファイルの作成には、File APIを使用し、新しいBlobオブジェクトを作成します。作成したBlobオブジェクトにテキストデータを書き込むことで、テキストファイルに内容を保存することができます。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
#2 です。 勉強目的ということでしたのでブラウザ(IE)依存で問題ないと考えていました。WSH でも hta でも JScript は利用できるはずなので。 質問者さんは以下の希望を持っていると想像していました。 ・JavaScript だけでテキストファイルに出力したい ・ローカルで実行するので、ブラウザ依存で構わない (Webサイト制作が目的ではない) そうではなく、 ・Webサイト制作する上での JavaScript を知りたい ・標準的な JavaScript を学びたい (ブラウザ依存はしたくない) ・JavaScript 以外の言語(PHPなど)を学ぶこともいとわない ということでしたら、私の見込み違いですのでどうぞスルーしてください…。 サーバサイドでファイル出力するのが一般的な手法だと私も思います。
その他の回答 (6)
- 0909union
- ベストアンサー率39% (325/818)
>演算結果を確認するためにだけファイルを作成しようとしている印象を受けます。 すみません。そんな難しい事考える必要ありません。 クライアントサイドスクリプトなら 新しいウインドウ又は、フレームに document.write() xxxx.value=演算結果 alert(); xxxx.text = ですみますよね。 サーバーサイドなら、 普通に標準出力にだせばいい(もちろんHTMLオブジェクト先でいい)。 両方の組み合わせでも同じ。 だって、サーバーサイドからDLした物は、そのままブラウザの機能使って「ファイルに保存」で目的は達成できる。 クライアントでのファイル入出力の可能性を導きけばいいだけの話。 デバック方法は、上記で十分です(サーバー側のサービスや、APIのでバックなら別だが)。
- aki_mana
- ベストアンサー率25% (1/4)
補足となります。 yyr446さんの仰るとおりです。 ファイルを作成したいという目的であれば、 サーバー側スクリプトにファイル出力を任せるのが現実的です。 さて、質問を改めて読むと「演算した結果をテキストファイルにして」という部分に 演算結果を確認するためにだけファイルを作成しようとしている印象を受けます。 この場合、試験的に作成した演算結果のファイルを後から削除しなければならないので、 ブラウザに実装されているデバッガに表示させる ― console.log() を活用する ― と、 コピー&貼り付けのような方法でテキストファイルに記録を取ることもできます。 多くの開発者はデバッガを活用されていると思います。 * IE…開発者ツール * Firefox…firebug * Opera…Dragon Fly * Chrome/Safari…DevelopersTools どれも、有効化した上でコード内に console.log( 演算結果を示す変数1, 変数2 ); とか、 console.log( "エラーテキスト" ); のように記述するだけになります。
- yyr446
- ベストアンサー率65% (870/1330)
既に回答はでてますが、 javascriptの勉強が目的なら、javascriptでのファイル入出力の方法をあれこれ模索するのは無意味です。(特にクライアント側のデスクトップでの操作を想定してるなら) インターネットじゃないローカル環境で、ユーザーインターフェースにブラウザーを使いたいだけなら、HTMLとJSCRIPT(ActiveX使用)で作って、拡張子をHTAにするってのもありますが、それならVBS(Vbscript)で書いた方が楽です。VBSでかくなら無理にブラウザー使わなくても、Windowsの部品が使えますから、WSHにしてしまった方が無駄が省けます。それなら、昔ながらのBATファイルでも出来ます。見栄えよくしたいなら、VBやVBAでやればよいんです。 ネットを介しての処理なら、javascriptでこだわるより、サーバーサイドのプログラム(PHP,perl,JAVA,VB)との連携について勉強した方がよいでしょう。
- 0909union
- ベストアンサー率39% (325/818)
>、Windows に限定していいのであれば ブラウザ依存です。ブラウザによって対応が違うので、ほぼIEのみです。 http://www.google.co.jp/search?hl=ja&q=%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6+jscript%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88&lr=lang_ja (ほとんどJavaScriptがヒットするが我慢してみるとちゃんと在る、注意書きが) ただ、他にもXML DOM対応のブラウザであれば、XMLとして出力が可能。XML操作で通常load とsaveのメソッドは、ほぼ対応しているので。もちろん、テキストですし、中身はHTML形式でもXMLでも、ただの文字列でもかまわない。 http://msdn.microsoft.com/en-us/library/ms753769(v=VS.85).aspx#Y48 また、API関連で言えば、 http://msdn.microsoft.com/ja-jp/library/cc197062(VS.85).aspx です。XML以外は、IE、wscript, cscriptの移植に頼る事が大きい。
- think49
- ベストアンサー率59% (285/482)
テキストファイル出力ですが、Windows に限定していいのであれば JScript が妥当だと思います。 http://msdn.microsoft.com/ja-jp/library/cc392177.aspx http://msdn.microsoft.com/ja-jp/library/cc428071.aspx
- aki_mana
- ベストアンサー率25% (1/4)
現在のブラウザ事情では、ボタン操作によるファイル作成の回答は得られないと思います。 理由ですが、2つあります。 1)セキュイリティ上の問題でJavaScriptからは端末上のファイルを作成したり変更できないため。 2)Firefoxなどの新技術を試験的に実装しているブラウザでは HTML5関連技術である FileAPI が活用できるが、策定中の仕様で「不変の回答」を求めることが出来ないため。 >>プログラムを知りたい FileAPI関連では同感。 検索すれば、「FileAPIでテキストを書き換えた」というブログエントリもありましたが、 策定中の仕様である以上、この場で回答できるものではないと思います。 代替案として2つ 1)ボタン操作を諦め、dataスキームを使う TEXTAREAにある内容を dataスキームに処理して A要素のリンクとして生成。 このリンクを右クリックして「名前を付けて保存」を選ぶという方法なら 現在リリースされる全ての最終安定版ブラウザでもローカルに保存できます。 ボタン操作という要件は外しますが。 2)JavaScript以外の方法をとる。 IEに限ればJavaScriptという要件を外しますが、VBScriptを検討できると思います。