使用javascript Blob将数据保存为CSS文件

时间:2016-11-20 20:01:25

标签: javascript blob

我有以下功能使用blob ...

将文件保存到浏览器
var saveData = (function () {
    var a = document.createElement("a");
    document.body.appendChild(a);
    a.style = "display: none";
    return function (data, fileName) {
        var json = JSON.stringify(data),
            blob = new Blob([json], {type: "octet/stream"}),
            url = window.URL.createObjectURL(blob);
        a.href = url;
        a.download = fileName;
        a.click();
        window.URL.revokeObjectURL(url);
    };
}());

我将以下数据传递给它......

var filename = "style.css";
var data = CSSFile //CSS string

saveData(data, filename)

我的data是一系列CSS属性,我想将其保存为CSS文件。问题是,当我打开下载的CSS文件时,它看起来像......

"html, body {....} ... "

注意它被双引号括起来。我需要删除这些。我试过以下......

CSSFile = CSSFile.substring(0, CSSFile.length - 1);
saveData(data, filename)

但所有这一切都是删除双引号内的第一个字符......

 "tml,body{...}..."

如何在没有双引号的情况下保存字符串?

1 个答案:

答案 0 :(得分:0)

您在字符串中获得引号,因为当它已经是字符串时,您通过JSON.stringify运行它。

试试这个。

var saveData = (function () {
    var a = document.createElement("a");
    document.body.appendChild(a);
    a.style = "display: none";
    return function (data, fileName) {
        var blob = new Blob([data], {type: "octet/stream"}),
            url = window.URL.createObjectURL(blob);
        a.href = url;
        a.download = fileName;
        a.click();
        window.URL.revokeObjectURL(url);
    };
}());