sessionStorage值在AngularJS的其他选项卡中变为null

时间:2017-10-20 10:25:48

标签: javascript angularjs session-storage

登录后,我将值存储在Angular会话中:

public class Test {
 public static void main(String[] args) {

            Calendar instance = Calendar.getInstance();
            instance.set(-509,1,1);

            java.sql.Date d = new Date(instance.getTime().getTime());

            System.out.println(d.toLocalDate().getYear());// 510


        }
}

我在这里获取会话值:

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

如果我打开该页面,则在其他标签中,var sessionvalue = sessionStorage.getItem("CustomerID"); 变为sessionvalue。 它适用于同一个标签。

为什么它在浏览器的另一个标签中变为null

1 个答案:

答案 0 :(得分: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));