JavaScript';s localStorage不';不保值

JavaScript';s localStorage不';不保值,javascript,local-storage,Javascript,Local Storage,我有: setFileName()之所以有效,是因为filenamelem包含argFileName。但是每当我调用getFileName()时,它总是返回getDefaultFileName() 为什么会这样?您应该使用这种语法 储存使用 var setFileName = function(argFileName) { localStorage.fileName = argFileName; fileNameElem.value = localStorage.fileName

我有:

setFileName()
之所以有效,是因为
filenamelem
包含
argFileName
。但是每当我调用
getFileName()
时,它总是返回
getDefaultFileName()


为什么会这样?

您应该使用这种语法

储存使用

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

var getFileName = function()
{
    return localStorage.fileName ? localStorage.fileName : getDefaultFileName();
};
要从本地存储中获取

localStorage.setItem('fileName', value);
用JSFIDLE编辑,以防您想查看


请检查此项。我看不出眼前的问题,但是FWIW您的三元运算符可以替换为
return localStorage.fileName | | getDefaultFileName()
@Alnitak。好的,我改了,你的代码对我有用。您使用的浏览器是什么?根据,使用属性访问器从
localStorage
进行读写是完全合法的。唯一的例外是,当想要存储一个恰好与不动产(或通过
localStorage
object的原型链继承的不动产)共享名称的不动产@Alnitak时,我将其更改为“您应该使用”。出于某种原因,我只是认为语法是无效的。不管怎么说,使用set&get似乎更安全,对吧?也许更安全,但几乎肯定不是OP出现问题的原因。我正在Chrome中查看
localStorage
的内容。首先,它显示指定的值,但随后快速更改为
getDefaultFileName()
@mirsadhalilovic,这意味着您有其他代码覆盖了它,而这个答案实际上并没有解决您的问题
localStorage.getItem('filename');