2013-01-11 49 views
4

我正在嘗試編寫一個chrome擴展,用於從配置文件初始化一些參數。 我想允許擴展程序更改這些參數並將它們保存到文件中,以便下次加載擴展時使用新配置。在擴展中讀取和寫入文件

我一直在閱讀chrome.filesystem api,但它需要用戶的交互來選擇文件。但是,在這種情況下,該過程必須在沒有用戶的任何動作的情況下自動完成。

由於這個配置文件只能被擴展名訪問,所以它可能是沙盒式的,但即使關閉了chrome,它也必須持久化。

我設法使用XMLHttpRequest讀取文件,但我找不到修改文件的方法。

是否有可能從鉻擴展做到這一點?

+2

爲什麼不使用chrome.storage(或localStorage的)? –

回答

0

我想,允許鉻擴展寫入配置文件,而用戶不知道可能有點安全問題。您可能會遇到安全功能。潛在的解決方法是構建一個始終開啓的桌面應用程序,並且您的chrome應用程序與之通信。哎呀,你可以用autohotkey這樣的東西來做你所需要的(不知道所有的細節)。

4

這是一個古老的問題,但不幸的是,它得到的唯一答案是錯誤的。

在Chrome中使用HTML5讀寫文件絕對是可能的,沒有提到模糊的「安全」問題。 HTML5文件系統會創建一個受保護的沙箱,您可以在其中編寫和讀取虛擬文件:您可以將其視爲正在使用基於文件的數據庫管理的文件,無法通過其他Chrome應用程序擴展程序或其他基於OS的應用程序訪問。用戶將無法使用他的操作系統文件瀏覽器複製或移動這些文件,因爲它們位於Web瀏覽器的文件數據庫中。

根據任何給定的文件路徑,您無法從(到)磁盤讀取(或寫入)任意文件。 如果需要從磁盤上的文件,你只能讓用戶通過使用chrome.fileSystem.chooseEntry選擇它自己()

但是,您可以讀取(寫入)從(到)HTML5文件系統自己的文件。

所以要回答你的問題:不,你不需要用戶交互來將你的配置文件寫入瀏覽器的文件系統。 文件的替代方案可以是chrome存儲,localstorage或甚至indexedDB來存儲您的(持久保存的)配置鍵值對。

這裏有幾個有用的鏈接開始閱讀關於它:

Toying with the HTML5 filesystem

HTML5 Rocks

HTML5 demos