2011-07-28 5 views
3

どのようにしても、ブラウザ互換のjavascriptを使用して.txtファイルを作成する方法を教えてください。txtファイルを保存するためのjavascriptコード

ファイルを作成した後、作成されたファイルを保存できるように、[名前を付けて保存]ボックスが表示されます。

他のロジックは、ウェルカム

私はIEでうまくやって、

ですが、あなたはIEを探しているなら、同じコードは、他のブラウザ

+0

これまでのところ、ActiveXオブジェクトを使用してファイルを作成しているとしますか? –

答えて

1

をで実行されていないだけあなたがうまくいけば、明らかなセキュリティ上の理由から、これを行うことはできません

function createFile() { 
    set fso = new ActiveXObject("Scripting.FileSystemObject"); 
    set s = fso.CreateTextFile("C:\test.txt", True); 
    s.writeline("HI"); 
    s.writeline("Bye"); 
    s.writeline("-----------------------------"); 
    s.Close(); 
} 
+0

**スクリプトです。FileSystemObject ** Microsoft独自のソリューション@Murchief? –

+0

@Saeed、私の編集を参照してください。明らかにIEのみであるActiveXオブジェクトを作成しています。また、 'Scripting.FileSystemObject'はWindows Scriptingコンポーネントからのものです。 – Mrchief

2

:ソリューション、これを試してみてください。 JavaScript にはファイルシステムへのアクセス権がありません... IEではJavaScriptではありませんが、 ActiveXはこれを行います... JavaScript APIが公開されているだけです。

問題は、Firefoxはこれを行いません...それはIEが今まで あなただけを送信することにより、これを行うことができ、それはこの記事では

を:) In Firefox, Write to a File using Javascript?

0

を許可されていることだということではありませんデータをサーバー側の言語に変換し、ファイルに書き込むことができます。その後、ファイルの場所を送り返してそこのユーザーをリダイレクトすることができます。

1

あなたはサーバーにデータを送信し、ダウンロードするためのリンクを提供する必要があります。ここにjqueryとphpのひどい例があります。

$.ajax({ 
    type: "post", 
    url: "ajax.php", 
    data: { 
     type: "save", 
     text: "this is some text you want to send" 
    }, 
    dataType: "json", 
    success: function(data){ 
     window.open(data["url"]); 
    } 
}); 

これを行う方法の偉大例えばajax.php

<?php 
    if($_POST["type"] == "save"){ 
     $name = "random_name.txt"; 
     file_put_contents("$name",$_POST["text"]); 

     echo json_encode(array(
      "type" => "link", 
      "url" => "http://yourserver.com/{$name}" 
     )); 
    } 

?> 
1

、JavaScriptでは単一のユーザーのwikiを実装を見てください。それはすべての主要なブラウザをサポートし、それぞれのブラウザでローカルディスクに自身のコピーを保存します。

(この質問に前述したように)これは、ファイルのための最良の情報は、Firefoxに保存されます IEでFileSystemObjectオブジェクトを使用してChromeのhttps://developer.mozilla.org/en/Code_snippets/File_I%2F%2FO

で、オペラ& Safariがある少しアプレットを使用しています。

TiddlySaver Javaアプレットを使用すると、TiddlyWikiは、Safari、Operaなどの ブラウザの ローカルバージョン(file:// URLから)の変更を保存できます。

0

実際には、ファイルダイアログ(デフォルトのパスでもファイルタイプでなくても)をプロンプトする方法を含めて、データURLのダウンロードを開始する可能性があります。このような解決策については、https://stackoverflow.com/a/13696029/271577を参照してください(テキストリンクの例を参照)。つまり、ユーザーがブラウザを使って手動で保存するようにすれば、データURL経由で新しいタブでコンテンツを開く方が良い解決策になるかもしれません。

関連する問題