2017-04-09 78 views
0

我正在使用本地存储来存储凭据和登录详细信息。它工作正常,但是当我试图改变这个值时,它并没有改变。本地存储不会更改值

这里是登录的代码。

的login.html

<script type="text/javascript"> 


       window.localStorage.setItem("login", "true"); 
       window.localStorage.setItem("email", data.email); 
       window.localStorage.setItem("id", data.uid);  
       window.localStorage.setItem("name", data.name);         



</script> 

这里是注销的代码。这一个不工作。

logout.html

window.localStorage.setItem("login", "false"); 

出于某种原因,我总是在logout.html文件中获取login = true

任何建议我做错了什么。

编辑:

没有错的代码。它工作正常。我正在直接访问文件,这就是为什么它没有改变。

+0

您使用在脚本标记相同login.html的JS代码? – bhansa

+0

是的。我在

1

猜测:您正在使用像服用点

if(window.localStorage.getItem("login")) 

和它的真实。如果是这样的话,因为任何非空字符串都会生成真实的。如果是这样的情况下,尝试

if(window.localStorage.getItem("login")==="true") 

if(window.localStorage.getItem("login")!=="false") 
+0

它工作正常登录,并可以检查其他页面,但当我尝试注销。我假设它会使登录= false。但这并未发生。 – Ironic

+0

请准确地向您的帖子添加什么工作正常,我的意思是从存储中读取值的代码行。如果你有问题,显然是不能正常工作 –

+0

我认为它的写法明确的问题。“出于某种原因,我总是得到登录=真” – Ironic

1

您是否尝试过删除的项目?

window.localStorage.removeItem("login"); 
window.localStorage.setItem("login", "false"); 
+0

没有试图去除。让我尝试。 – Ironic

+0

投了赞成票。然而我越来越投票。谢谢你的帮助。 – Ironic

0

或许,你应该使用

JSON.parse(localStorage.getItem("login")) 

这将让您的项目作为一个布尔值true或false