0

我有一个crx,有一些文件,我想随时间能够改变。例如,它可能有这样的结构:.crx chrome应用程序中的代码是否可以对自身内的文件(crx)进行写入访问?

index.html 
js/code.js 
images/someimage.png 

我希望能够使用AJAX(或JSONP)下载新的图像,并覆盖image/someimage.png(后CRX已经安装到Chrome浏览器)。这可能吗?

+0

文森特的答案是正确的。你不能这样做的原因是我们希望用户能够在安装时知道他们正在安装什么。因此,安装提示列出权限,以及在更新时临时禁用应用程序/扩展需要更多权限。这就是为什么CRX需要是静态的。 (对于代码来说,参数比PNG更强,但你明白了。) – sowbug 2013-05-14 17:47:21

回答

3

不,您不能直接修改应用程序/扩展数据文件。

但是,您可以将下载的图像存储到chrome.storage,chrome.fileSystemchrome.syncFileSystem。在运行时,您可以检查下载的映像是否存在,然后换出映像参考。例如。使用dataURL或blob。

+0

谢谢。这就是我的想法,但对于CSS文件中引用的图像来说,这可能很困难。我不得不单独跟踪这些(例如背景图像),并在图像更改时更新类定义。有没有办法将css风格指向文件系统文件? – 2013-05-13 21:24:52

+0

您应该可以使用沙盒文件系统(您不需要使用chrome.fileSystem,chr​​ome.fileSystem用于沙箱外的文件)。沙盒的FileEntries有你应该能够动态指向你的css的URL。 – 2013-05-14 10:32:54

+0

@BenWells您可以添加一个链接,向我展示如何从沙盒的FIleEntry获取URL?我不知道这是可能的。你确定这是在最新的Chrome中实现的吗? – 2013-05-14 19:25:23

相关问题