テキストファイルの出力

JavaScriptだけでもテキストファイル(UTF-8)の出力ってできるんですね。
ただし以下は、Blobオブジェクトを使っています。なのでHTML5 File APIを使用してます。たとえば、IE9以下は未対応なので、仕事のコードでは使用し(でき)ませんでした。。

function OutputText(text, fileName) {
    var b = new Blob(["\uFEFF", text]);
    if (navigator.msSaveBlob) {
        navigator.msSaveOrOpenBlob(b, fileName);
    } else {
        var a = document.createElement('a');
        a.href = URL.createObjectURL(b);
        a.setAttribute('download', fileName);
        a.dispatchEvent(new CustomEvent('click'));
    }
}

たとえばHTMLフォームのボタンから以下のように呼びだします。

<input type="button" value="exec" onclick="OutputText('こんにちは!', 'output.txt');" />

とくに、意味はないですが一行のJavaScriptブックマークレットも作ってみました。お気に入りのURLに入れて保存して、クリックすると「こんにちは!」という文字列のファイルがDLできるだけです。

javascript:b=new%20Blob(["\uFEFF","\u3053\u3093\u306B\u3061\u306F\uFF01"]);f="test.txt";if(navigator.msSaveBlob){navigator.msSaveOrOpenBlob(b,f);}else{a=document.createElement('a');a.href=URL.createObjectURL(b);a.setAttribute('download',f);a.dispatchEvent(new%20CustomEvent('click'));}