我有一個crx,有一些文件,我想隨時間能夠改變。例如,它可能有這樣的結構:.crx chrome應用程序中的代碼是否可以對自身內的文件(crx)進行寫入訪問?
index.html
js/code.js
images/someimage.png
我希望能夠使用AJAX(或JSONP)下載新的圖像,並覆蓋image/someimage.png
(後CRX已經安裝到Chrome瀏覽器)。這可能嗎?
我有一個crx,有一些文件,我想隨時間能夠改變。例如,它可能有這樣的結構:.crx chrome應用程序中的代碼是否可以對自身內的文件(crx)進行寫入訪問?
index.html
js/code.js
images/someimage.png
我希望能夠使用AJAX(或JSONP)下載新的圖像,並覆蓋image/someimage.png
(後CRX已經安裝到Chrome瀏覽器)。這可能嗎?
不,您不能直接修改應用程序/擴展數據文件。
但是,您可以將下載的圖像存儲到chrome.storage,chrome.fileSystem或chrome.syncFileSystem。在運行時,您可以檢查下載的映像是否存在,然後換出映像參考。例如。使用dataURL或blob。
謝謝。這就是我的想法,但對於CSS文件中引用的圖像來說,這可能很困難。我不得不單獨跟蹤這些(例如背景圖像),並在圖像更改時更新類定義。有沒有辦法將css風格指向文件系統文件? – 2013-05-13 21:24:52
您應該可以使用沙盒文件系統(您不需要使用chrome.fileSystem,chrome.fileSystem用於沙箱外的文件)。沙盒的FileEntries有你應該能夠動態指向你的css的URL。 – 2013-05-14 10:32:54
@BenWells您可以添加一個鏈接,向我展示如何從沙盒的FIleEntry獲取URL?我不知道這是可能的。你確定這是在最新的Chrome中實現的嗎? – 2013-05-14 19:25:23
文森特的答案是正確的。你不能這樣做的原因是我們希望用戶能夠在安裝時知道他們正在安裝什麼。因此,安裝提示列出權限,以及在更新時臨時禁用應用程序/擴展需要更多權限。這就是爲什麼CRX需要是靜態的。 (對於代碼來說,參數比PNG更強,但你明白了。) – sowbug 2013-05-14 17:47:21