【问题标题】:Export CSS Styles in a seperate .css file, after being manipulated with JS/jQuery?使用 JS/jQuery 操作后,在单独的 .css 文件中导出 CSS 样式?
【发布时间】:2012-12-04 16:16:05
【问题描述】:

我必须使用 HTML5/JS/jQuery/CSS 创建一个自定义的基本 SVG 编辑器。
编辑器的输入是两个文件 x.svg 及其关联的 x.css 文件。

x.svg 将加载到 HTML 页面中,并应用来自 x.css 的样式。然后像描边、宽度...这样的样式将使用 JS/jQuery 进行操作,到目前为止一切都很好。

我的问题是,在用户对样式进行了一些更改并希望将这些更改永久保存在 x.css 文件中之后,我不知道该怎么做,我可以编写 属性:值对文件很容易,但是 x.css 文件有选择器、大括号等...程序的输出应该是探测器 x.css 文件,注意 x.svg 将保持不变。这个问题怎么处理,没有代码的详细思路就够了,谢谢。

【问题讨论】:

  • 保存更改到客户端我的意思是,加载的文件也位于客户端,根本不使用服务器。

标签: javascript css html svg


【解决方案1】:

好的,这就是答案,我在 Eli gray 的 FileSaver.min.js 和 BlobBuilder.min.js 的帮助下实现了它,该函数附加到锚元素的单击事件,当用户单击一个对话框时,要求您插入文件名和存储位置。 在 Chrome 23 上测试,在版本 24 上它不起作用。

function exportCSS() 
{

//stop anchor link from taking us anywhere
event.preventDefault();
//index is chosen for test sofar, need next to iterate over all sSheets and pick the right one depending on svg file name
sSheet = document.styleSheets[2];
myRules = sSheet.cssRules;
len = myRules.length;
for (i = 0; i < 50; i++) {
    cssOutputString = cssOutputString + myRules[i].cssText + "\n";
}
console.log(cssOutputString);

//save the file
var blob = new Blob([cssOutputString]);

saveAs(blob, "file.css");
}

【讨论】:

    【解决方案2】:

    出于安全原因,您不能使用 Javascript 将文件保存到客户端的硬盘。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-10
    • 2015-05-26
    • 1970-01-01
    相关资源
    最近更新 更多