2011-07-01 7 views
1

ユーザーが簡単にテキストコンテンツを保存する方法を教えてください。テキストコンテンツを新しいウィンドウに書き込む(またはコンテンツタイプをHTMLからテキストに変更する)?

document.write("this text must be saved") 

は、ほとんどの作業を行いますが、ページのコンテンツは、HTMLなどのブラウザによって知覚され、htmlとして保存されます。 text/plainに変更できますか?

"data:" uriで生成することができますが、デフォルトのファイル名を指定する方法はありません。

ありがとうございました。

答えて

2

あなたは

document.open('text/plain'); 
document.write('Save me'); 

を実行しようとしましたか?私が実際に保存しようとするとファイル名がどのように示唆されるのかは分かりませんが。あなたはここに新しい(そして非常に限定された)領域をチャートしています。

+0

はいbuddy !!それだ。それは少なくともFirefoxで動作します。私はhistory.pushState( ""、 ""、 "newTitle.csv")でそれを使うことができます。あなたのコードを送る前にタイトルを変更する。ありがとう。 – VitoshKa

+0

私は100%確信しているわけではありません。history.pushState()は*動作するはずですが、少なくともそれは持続する間に解決策を見つけて楽しむことができます。 – hallvors

+0

text/plain with document。 openはSafariやChromeでサポートされていないようです。 –

1

はレスポンスにこのヘッダを追加します。Content-Type: text/plain

+0

私は実際には、純粋にクライアント側で、javascriptを使用して解決策が必要です。 一部のテキスト ")を使用すると、目的の結果が得られません。または私は何かを逃した? – VitoshKa

+0

これまでにdocument.writeに行くまでに、ブラウザはヘッダーを見たり、MIMEスニッフィングを行ったり、デフォルトに戻したりすることで、すでにMIMEタイプを認識していました。 – Mrchief

0

これは

Response.AddHeader("content-disposition", "attachment; filename=" + fileName); 

はそれが役に立てば幸いトリックを行います。

+0

これにより、ファイルのダウンロードダイアログが表示されます。ページはテキストとしてレンダリングされません。 – Mrchief

+0

クライアントサイドでのみ行う方法に関するアイデアはありますか?ありがとう。 – VitoshKa

+0

あなたはサーバーからヘッダーを設定してそこからデータを送信する必要があります。これによりタブが開き、ダウンロードウィンドウが表示され、タブが自動的に閉じられます。 –

関連する問題