9

我正在尋找一種方法從localStorage中獲取所有信息。我遇到的麻煩是我不知道數據會是什麼,因爲它是用戶生成的。從LocalStorage中檢索所有數據(不知道密鑰名稱)

所以這裏發生了什麼,用戶輸入一些文本,它使用JavaScript來操縱它,這取決於他們在輸入表單上勾選了哪些複選框。這些框是用於符號的,例如,如果他們在@框中打勾,那麼文本+ @At(符號然後是詞)將被放置在本地存儲器中,另一半作爲布爾值(在這種情況下爲1或0)代表是否被檢查過。

確切的一對看起來是這樣的:

someString .. @ At | 1
someString ..#Hash | 0

還應當指出的是,這是爲了在Chrome擴展使用,從而在其他瀏覽器的兼容性是不是對我的要求(雖然它很可能是usful他人閱讀此作爲我在網上找不到任何其他內容)。

那麼,如果無論如何我可以提取localStorage中的所有值,而無需真正知道每個鍵的名稱? 是否有可能使用任何種類的通配符或正則表達式也許,我已經嘗試過,但應使它使用for循環。

謝謝, WEZ

回答

18

window.localStorage.key是解決方案。 例如:

var i = 0, 
    oJson = {}, 
    sKey; 
for (; sKey = window.localStorage.key(i); i++) { 
    oJson[sKey] = window.localStorage.getItem(sKey); 
} 
console.log(oJson); 
+0

真棒,書籤。 – collin 2013-01-30 15:08:11

+0

這將返回所有數值作爲字符串。通過使用'var value = window.localStorage.getItem(sKey);保存'oJson'中的類型。 oJson [sKey] = value && JSON.parse(value); i ++;'在while()中'而是... – 2013-06-17 12:30:21