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