2010-01-28 114 views

回答

43

甚至比這更簡單:

閱讀:

var myStoredValue = localStorage["TheKeyToMyStoredValue"]; 

寫:

localStorage["TheKeyToMyStoredValue"] = myNewValueToStore; 

擺脫:

delete localStorage["TheKeyToMyStoredValue"]; 
+2

你的先生是一個99級的德魯伊和聖人。 – EbilGenius 2013-01-25 15:11:31

+0

這是我在很長時間內閱讀的最好答案。 – whizzzkid 2014-11-02 17:50:33

+0

很好的答案。請注意,這不適用於內容腳本。我很困惑,直到我發現[this](http://stackoverflow.com/a/15466494/4926817) – 2016-02-29 20:02:18

21

是的。詳細瞭解如何做到這一點可能會超出合理的StackOverflow答案的長度,因此我會通過Rajdeep Dua向您推薦this very extensive tutorial

相關的代碼是這樣的:

// Store item in local storage: 
    function setItem(key, value) { 
    try { 
     log("Storing [" + key + ":" + value + "]"); 
     window.localStorage.removeItem(key);  // <-- Local storage! 
     window.localStorage.setItem(key, value); // <-- Local storage! 
    } catch(e) { 
     log("Error inside setItem"); 
     log(e); 
    } 
    log("Return from setItem" + key + ":" + value); 
    } 

    // Gets item from local storage with specified key. 
    function getItem(key) { 
    var value; 
    log('Retrieving key [' + key + ']'); 
    try { 
     value = window.localStorage.getItem(key); // <-- Local storage! 
    }catch(e) { 
     log("Error inside getItem() for key:" + key); 
     log(e); 
     value = "null"; 
    } 
    log("Returning value: " + value); 
    return value; 
    } 

    // Clears all key/value pairs in local storage. 
    function clearStrg() { 
    log('about to clear local storage'); 
    window.localStorage.clear(); // <-- Local storage! 
    log('cleared'); 
    } 

    function log(txt) { 
    if(logging) { 
     console.log(txt); 
    } 
    } 
+1

該教程的鏈接已損壞,但該示例仍存在。以下是教程示例https://chrome.google.com/webstore/detail/hmbpgbeiphknbkjjfppodijapijlpkkc – 2011-12-24 10:59:28

+0

此API也有很好的工作: https://developer.chrome.com/extensions/storage.html 它也允許你將數據同步到你的個人資料 – 2013-01-24 03:52:46

5

目前的Chrome版本具有本地存儲。

我自己也用過它。您可以使用modernizr來檢測瀏覽器是否支持它。 我已經爲客戶端編寫了一個解決方案,如果沒有本地存儲,我會回退到cookie,但這對擴展應該不是問題。

+0

鏈接的死亡截至11/11/11 – techie007 2011-11-11 21:14:33

+1

我刪除了它並更新了答案 – 2011-11-14 14:12:45

7

Chrome瀏覽器也支持HTML5 Web Database規格。這給你一個本地的SQL數據庫,所以你可以做更復雜的事情,而不是簡單地在本地存儲中存儲名稱/值對。

3

今天使用chrome.storage可能會更好。 chrome.storage是異步的,這使得它更快,localStorage被限制爲5MB。

+0

「這使得它更快」__ [引用需要] _ – Xan 2016-02-29 20:21:03

+0

正如指定[這裏](https://由chrome開發人員開發的大容量非阻塞式讀寫操作比阻塞和串行localStorage API更快。 – krbnr 2016-03-07 22:26:02

+0

感謝您的鏈接! – Xan 2016-03-07 22:30:42

1

這裏已經有一些很好的答案,但請注意,如果您決定在擴展中使用內容腳本,那麼該內容腳本將無法訪問localStorage。因此chrome.storage是一個很好的選擇。

相關問題