JSFiddle - React, Tailwind, and code Playground

HTML

<a id="download">Download</a>

JavaScript

// via http://kurukurupapa.hatenablog.com/entry/20121013/1350101221
setFileUrl("download", "sample.csv", "hoge,fuga\nfoo,bar\n");

function setFileUrl(id, fname, content) {
    var requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
    requestFileSystem(TEMPORARY, 1024 * 1024, function (fileSystem) {
        fileSystem.root.getFile(fname, {
            create: true,
            exclusive: false
        }, function (fileEntry) {
            fileEntry.createWriter(function (fileWriter) {
                var blob = new Blob([content], {
                    "type": "text/plain"
                });
                fileWriter.write(blob);
                fileWriter.onwriteend = function (e) {
                    console.log("ファイル書き込み成功");
                };
                fileWriter.onerror = function (e) {
                    console.log("ファイル書き込み失敗");
                };
            });

            $("#" + id).attr("href", fileEntry.toURL()).attr("download", fname);
            // 仮想ファイルシステムから消したほうがいいかもね?
        }, function (error) {
            console.log("error.code=" + error.code);
        });
    });
}