2011-11-18 2 views
8

JavaScriptを使用してテキストファイルを作成しようとしていますが、ActiveXオブジェクトを使用してテキストファイルを作成できますが、IEブラウザでのみ有効です。JavaScriptでテキストファイルを作成する

私の要件は、JavaScriptを使ってSafariブラウザにテキストファイルを生成することですか?

誰でもこの点について私を助けることができますか?

+0

私たちが助けることができるようにコードを提供してください..... –

+0

も参照してください。[javascript互換のクロスブラウザを使ってtxtファイルを作成、保存する方法](http://stackoverflow.com/questions/7392117/) – harpo

答えて

-2

は私の要件は、バニラJavascriptを持つため、セキュリティ制限することはできません Safariブラウザ

ためにJavaScriptを使用して、テキストファイルを生成することです。ただし、Node.JSやAjaxなどのサーバー側のjavascriptなどのや、その他のサーバー側の技術を使用することもできます。

uは私はいくつかの回戻って、いくつかの一般的なブラウザでこれをテストしている

window.open("data:text/json;charset=utf-8," + escape("Ur String Object goes here"));

、テキストファイルを保存するため、ユーザーに要求する次の行を使用することができますJavaScriptで
8

...ちょうどそれがSafariで動作することを確認そうでない場合は、幸運

+0

この回答が投稿されてから3年が経過していますが、このコードはGoogle Chromeでは正常に動作しませんでした。 – hexicle

12

BlobURL.createObjectURLを使用する別の方法です。 Safari 6以降を含む最近のすべてのブラウザでサポートされています。ここで

var textFile = null, 
    makeTextFile = function (text) { 
    var data = new Blob([text], {type: 'text/plain'}); 

    // If we are replacing a previously generated file we need to 
    // manually revoke the object URL to avoid memory leaks. 
    if (textFile !== null) { 
     window.URL.revokeObjectURL(textFile); 
    } 

    textFile = window.URL.createObjectURL(data); 

    // returns a URL you can use as a href 
    return textFile; 
    }; 

textareaから任意のテキストを保存するには、この技術を使用するexampleです。

例については、ダウンロードリンクにdownload attributeを使用しています。残念ながら、Safariでは現在サポートしていません。しかし、ブラウザでは、ブラウザでファイルを開く代わりに、クリックすると自動的にファイルがダウンロードされます。また、私はdownload属性をinfo.txtに設定しているので、ファイルはcreateObjectURLによって生成されたランダムな名前の代わりにその名前でダウンロードされます。

関連する問題