2017-04-09 79 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