2

我正在创建一个开发工具,它将基于 SVG 精灵表图形文件创建 CSS。该脚本需要将 CSS 写回 /public/css/main.css。所以,不,我对沙盒文件结构不感兴趣(尽管那很酷)。

请记住,这不适用于生产。它只是一个简化我们工作流程的开发工具(并希望有利于网页设计/开发人员社区)。我已经调查了 --allow-file-access chromium 开关,但仍然不确定它是否允许写入权限。

所以,我的问题是:如何使用在浏览器中运行的 javascript 将字符串写入文件?请记住,这不适用于生产。

4

4 回答 4

0

如果您没有制作 Chrome/Firefox 扩展程序或桌面应用程序(根据您所说,我确定您不是),那么您无法在浏览器上使用 Javascript 执行此操作。您应该为这样的事情使用服务器端语言,并且可能将更改直接发送到服务器,然后返回到客户端,但我认为这不符合您的需求。

于 2013-10-18T19:08:08.097 回答
0

探索File-System API可能值得您花时间。

生成的文件存储在 Chrome 应用数据中。您不能写入文件系统上其他位置的文件。但是,也许一个脚本来抓取 app-data 中的文件并拉到另一个目录后运行可能就足够了?

这目前仅在少数浏览器中可用,肯定包括 Chrome。

于 2013-10-18T19:32:05.743 回答
0

简单的回答:

由于浏览器的安全限制,这是不可能的。

您可以添加如下标志:

--allow-file-access 

在 ChromeOS 上,除了某些列入白名单的目录外,file:// 访问被禁用。此开关重新启用 file:// 进行测试。

--allow-file-access-from-files

默认情况下,file:// URI 无法读取其他 file:// URI。对于需要旧行为进行测试的开发人员来说,这是一种覆盖。

但所有这些都是为了阅读。我怀疑你会用这种方法取得成功。M也许你应该切换到node.js. 在那里你可以读/写文件(我认为)

更新

对于 chrome,您可以创建一个NaCL-extension。有一个标志可以禁用 NaCL 扩展的 snadbox:--allow-nacl-file-handle-api

PS:我认为浏览器将是最难编写文件的运行时环境,因为:

  1. 没有(或至少没有)文件 API
  2. 文件 API 无权访问主机文件系统
  3. 浏览器开发者尽最大努力创建一个沙箱。
于 2013-10-18T18:10:48.770 回答
0

我认为它在 chrome/firefox 中不可行,但我见过webkit 桌面应用程序 SDK 的. 这些类型的 SDK 应该有文件 I/O api

潮牌 SDK看起来很有趣。

于 2013-10-18T18:15:39.573 回答