2011-09-10 52 views
10

我試圖做一個超簡單的setItem和getItem使用HTML5本地存儲。它似乎並沒有工作。這工作:localStorage.setItem不會在刷新

$(document).ready(function() { 
    localStorage.setItem('keyA', 'valueA'); 
    var testA = localStorage.getItem('keyA'); 
    alert(testA); 
}); 

它輸出一個警告框,說'valueA'。但是,當我註釋掉第2行(設置項目值)並刷新頁面時,它只會提醒'null'。

爲什麼價值不堅持?這就像它根本就沒有實際存儲。

瀏覽器是Firefox 6,所以沒有問題。這可能是在jQuery文檔中調用它的事情嗎?我GOOGLE了,但看不到任何關於這一點。

如果任何人都可以通過這個最初的障礙讓我感激不盡,謝謝!

+0

我無法在Chrome上重現。 – pimvdb

+0

嗯......對我來說也適用於Chrome,但不適用於Firefox 6! – Dan

+0

其他人可以在Firefox 6.0.2(最新版本)中試用嗎?我開始認爲在這個版本的Firefox中有不同的方式來做到這一點,或者它是一個錯誤:(我已經嘗試了很多不同的本地存儲示例,但是它們似乎都不會在Firefox 6.0.2中持續存在。 – Dan

回答

12

好的,在經歷了很多挫折之後,我有了解決方案。基本上,我是從文件系統本地運行這個作爲「快速」概念驗證的。它在Firefox或IE9中都不起作用,但它在Chrome中可以正常工作。

我最終做的是在真實域上嘗試這個,而這似乎已經完成了這個訣竅。

因此,我可以得出的結論是,在文件系統路徑上運行時,Firefox中的localStorage(至少6.0.2)和IE9不起作用。它在Chrome中。 Firefox和IE9需要一個「正確」的域名才能運行,大概是因爲它們比將localStorate對象關聯到「域名」(在Chrome中並不需要是域名)更加嚴格。

我希望這有助於人們,因爲它讓我感到沮喪! :)

+2

這些可能是有趣的:[Firefox中的「localStorage」僅在頁面在線?](http://stackoverflow.com/questions/1492942/is-localstorage-in-firefox-only-working-when-the-page-is-online)和[錯誤507361 - localStorage不起作用in file:/// documents](https://bugzilla.mozilla.org/show_bug.cgi?id=507361)。 –