2017-10-20 85 views
-2

登錄後其他選項卡爲空我存儲的值在會話角:的sessionStorage值變爲在AngularJS

sessionStorage.setItem("CustomerID", JSON.stringify(CustomerID)); 
sessionStorage.setItem("Email", JSON.stringify(email)); 

我在這裏獲取會話值:

var sessionvalue = sessionStorage.getItem("CustomerID"); 

在其他選項卡,如果我打開頁面,然後sessionvalue變成null。 它適用於相同的選項卡。

爲什麼它會在另一個標籤瀏覽器中變成null

+2

會話特定於單個窗口或選項卡。打開一個新選項卡將實例化一個新的會話:https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage –

+0

在登錄如何可以存儲一個會話,這是一個可訪問的全局整個項目的角色webapi直到註銷或可以像會話時間2分鐘 – asasasaa

+0

您可能需要查看其他存儲機制,如會話存儲,餅乾或WebSQL放出一些。 –

回答

3

根據MDN

的sessionStorage的屬性,可以訪問會話存儲對象當前原點。 sessionStorage與Window.localStorage類似,唯一的區別是當存儲在localStorage中的數據沒有設置過期時,存儲在sessionStorage中的數據在頁面會話結束時被清除。只要瀏覽器處於打開狀態並且在頁面重新加載和恢復時存在,頁面會話就會持續。在新選項卡或窗口中打開頁面將導致啓動新會話,這與會話cookie的工作方式不同。

來源:Window.sessionStorage


所以,你可能需要別的東西像window.localStorage

例子:

// in a-page.html 
 
localStorage.setItem("CustomerID", JSON.stringify(CustomerID)); 
 

 
// in b-page.html 
 
var CustomerID = localStorage.getItem("CustomerID", JSON.parse(CustomerID));

+0

在登錄如何我可以存儲一個會話,這是一個可訪問的全局角度webapi項目,直到註銷或可以像會話時間20分鐘..是否有任何方式? – asasasaa

+0

@asasasaa你可以在我的答案的最後部分閱讀示例。在註銷時,您可以使用'localStroage.clear()'去除'localStorage'中的所有存儲項。 –

+0

是localStroage存儲值可以訪問多個選項卡嗎? – asasasaa