我正在尝试编写一个 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/