sessionStorage打开新的标签页数据丢失, 共享数据

一开始用localStorage,不论打开多少个页面,哪怕关掉重新打开,同一个网站下的存储的数值还在,问题是,不能同时登录多个账户,以及设置过期时间等
后来启用sessionStorage,可以登录多个账户了,页面一关存储的数值也会自动被清掉,不存在安全问题;但来了新的问题,登录后,父页面跳转打开的新页面,两个页面之间的值无法共享了。
后来想了一下,可以利用window.opener来解决,自己写了一个set和get函数,如下:

封装全局函数:

sessionStorage打开新的标签页数据丢失, 共享数据_第1张图片

function setSession(name, value) {
  if (window.opener && Object.getOwnPropertyNames(window.opener).length > 0) {
    window.opener.sessionStorage.setItem(name, value)
  } else {
    sessionStorage.setItem(name, value)
  }
}
function getSession(name) {
  if (window.opener && Object.getOwnPropertyNames(window.opener).length > 0) {
    return window.opener.sessionStorage.getItem(name)
  } else {
    return sessionStorage.getItem(name)
  }
}
该函数兼容IE

你可能感兴趣的:(sessionStorage打开新的标签页数据丢失, 共享数据)