Google chrome extension 在chrome扩展中读取和写入文件

Google chrome extension 在chrome扩展中读取和写入文件,google-chrome-extension,Google Chrome Extension,我正在尝试编写一个chrome扩展名,用于初始化配置文件中的一些参数。 我希望允许扩展更改这些参数并将它们保存到文件中,以便下次加载扩展时使用新配置 我一直在阅读chrome.filesystem api,但它需要用户的交互来选择文件。但是,在这种情况下,该过程必须自动完成,而无需用户进行任何操作 由于此配置文件只能由扩展名访问,因此可以对其进行沙盒处理,但即使chrome关闭,它也必须是持久的 我设法使用XMLHttpRequest读取该文件,但找不到修改该文件的方法 是否可以从chrome扩

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

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

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

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


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

我认为允许chrome扩展名在用户不知道的情况下写入配置文件可能会有点安全问题。你可能遇到了一个安全特性。一个潜在的解决方法是构建一个始终打开的桌面应用程序,并且您的chrome应用程序与之通信。见鬼,你也许可以用自动热键之类的东西做你需要做的事情(不知道所有的细节)

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

在Chrome中使用HTML5读写文件绝对是可能的,没有提到的模糊的“安全”问题。HTML5文件系统创建了一个受保护的沙盒,您可以在其中写入和读取虚拟文件:您可以将其视为在Chrome管理的基于文件的数据库中写入的文件,其他Chrome应用程序和扩展程序或其他基于操作系统的应用程序都无法访问。用户将无法使用其操作系统文件资源管理器复制或移动这些文件,因为它们位于web浏览器的文件数据库中

您不能基于任何给定的文件路径从磁盘读取(或写入)任意文件。 如果您需要磁盘上的文件,您只能让用户自己使用chrome.fileSystem.chooseintry()来选择它

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

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

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

为什么不使用chrome.storage(或localStorage)?