2016-04-26 123 views
-1

我:JavaScript的localStorage的不保留價值

var setFileName = function(argFileName) 
{ 
    localStorage.fileName = argFileName; 
    fileNameElem.value = localStorage.fileName; 
}; 

var getFileName = function() 
{ 
    return localStorage.fileName ? localStorage.fileName : getDefaultFileName(); 
}; 

setFileName()作品,因爲fileNameElem包含argFileName。但每當我打電話getFileName()它總是會返回getDefaultFileName()

這是爲什麼?

+0

請檢查這一點。 https://developer.mozilla.org/en/docs/Web/API/Window/localStorage – DININDU

+0

我看不到直接的問題,但FWIW您的三元運算符可以替換爲'return localStorage.fileName || getDefaultFileName()' – Alnitak

+0

@Alnitak。好吧,我改變它 – DININDU

回答

0

您應該使用這個語法

要保存使用

localStorage.setItem('fileName', value); 

從本地存儲

localStorage.getItem('filename'); 

以防萬一編輯用的jsfiddle得到你想要看看。

https://jsfiddle.net/fo38uo9t/1/

+0

根據[W3C規範](https://html.spec.whatwg.org/multipage/webstorage.html#the-storage-interface),使用屬性訪問器從'localStorage'讀取和寫入是完全合法的。唯一的例外是,當想要存儲一個屬性與一個真實屬性共享一個名稱(或通過'localStorage'對象的原型鏈繼承的屬性) – Alnitak

+0

@Alnitak以及我將其更改爲「您應該使用」。出於某種原因,我只是認爲語法無效。無論如何,使用set&get似乎更安全,對吧? – QoP

+0

可能更安全,但幾乎肯定不是OP問題的原因。 – Alnitak