以chrome扩展名读取和写入文件

Edu*_*rdo 4 google-chrome-extension

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

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

由于此配置文件只能由扩展名访问,因此可以将其放在沙盒中,但即使chrome被关闭,它也必须是持久的。

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

可以通过Chrome扩展程序执行此操作吗?

小智 5

这是一个古老的问题,但是不幸的是,唯一得到的答案是错误的。

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

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

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

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

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

玩弄HTML5文件系统

HTML5摇滚

HTML5演示


Ste*_*ico 1

我想象允许 chrome 扩展在用户不知情的情况下写入配置文件可能会产生一些安全问题。您可能遇到了安全功能。一个可能的解决方法是构建一个始终打开的桌面应用程序,并且您的 Chrome 应用程序与其通信。哎呀,您也许可以使用自动热键之类的东西来做您需要做的事情(无需了解所有细节)。