2016-04-26 64 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