google-chrome-extension - 在 chrome 扩展中读写文件

标签 google-chrome-extension

我正在尝试编写一个 chrome 扩展来初始化配置文件中的一些参数。
我想允许扩展程序更改这些参数并将它们保存到文件中,以便下次加载扩展程序时使用新配置。

我一直在阅读 chrome.filesystem api,但它需要用户的交互来选择文件。但是,在这种情况下,该过程必须自动完成,无需用户进行任何操作。

由于此配置文件只能由扩展程序访问,因此可以进行沙盒处理,但即使 chrome 关闭,它也必须是持久的。

我设法使用 XMLHttpRequest 读取文件,但找不到修改文件的方法。

是否可以从 chrome 扩展程序执行此操作?

最佳答案

这是一个古老的问题,但不幸的是,它得到的唯一回应是错误的。

绝对可以在 Chrome 中使用 HTML5 读取和写入文件,而不会提到模糊的“安全”问题。 HTML5 文件系统创建了一个 protected 沙箱,您可以在其中写入和读取虚拟文件:您可以将其视为写入由 Chrome 管理的基于文件的数据库中的文件,其他 Chrome 应用程序和扩展程序或其他基于操作系统的应用程序都无法访问。用户将无法使用他的操作系统文件浏览器复制或移动这些文件,因为它们驻留在 Web 浏览器的文件 DB 中。

您无法根据任何给定的文件路径从(到)磁盘读取(或写入)任意文件。
如果您需要磁盘上的文件,您只能让用户自己使用 chrome.fileSystem.chooseEntry() 选择它

但是,您可以从(到)HTML5 文件系统读取(和写入)您自己的文件。

所以回答你的问题:不,你不需要用户交互来将你的配置文件写入浏览器的文件系统。
文件的替代方案可以是 chrome storage、localstorage 甚至 indexedDB 来存储您的(持久化)配置键值对。

以下是一些有用的链接,可以开始阅读它:

Toying with the HTML5 filesystem

HTML5 Rocks

HTML5 demos

关于google-chrome-extension - 在 chrome 扩展中读写文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14286197/

相关文章:

google-chrome-extension - 打开 Chrome ://extensions from web using link

javascript - Chrome 扩展 JavaScript 事件监听器在内容脚本中不起作用

javascript - 从导入的 HTML/JS 文件中提取变量

javascript - 当不同用户安装时,Chrome 扩展程序如何与自身对话?

google-chrome - chrome扩展生成的临时文件在哪里?

javascript - Underscore.js _.template 导致 Chrome 扩展出错

javascript - 客户端敏感数据加密

google-chrome - Chrome 扩展 xhr 请求被取消

javascript - chrome.webNavigation.onCompleted 和 chrome.tabs.onUpdated.addListener 与 'complete' 有什么区别

javascript - 在 Chrome 中测试时 Chrome 扩展程序不起作用 ://extensions/