sessionStorage
属性容许你拜访一个,对应以后源的 sessionStorage 对象。
- 页面会话在浏览器关上期间始终放弃,并且从新加载或复原页面仍会放弃原来的页面会话。
- 在新标签或窗口关上一个页面时会复制顶级浏览会话的上下文作为新会话的上下文,这点和 session cookies 的运行形式不同。
- 关上多个雷同的URL的Tabs页面,会创立各自的
sessionStorage
。 - 敞开对应浏览器窗口(Window)/ tab,会革除对应的
sessionStorage
。
语法
// 保留数据到 sessionStorage
sessionStorage.setItem('key', 'value');
// 从 sessionStorage 获取数据
let data = sessionStorage.getItem('key');
// 从 sessionStorage 删除保留的数据
sessionStorage.removeItem('key');
// 从 sessionStorage 删除所有保留的数据
sessionStorage.clear();
对于sessionStorage的一些问题
1.同样的url链接在浏览器的不同窗口能够共享sessionStorage
的数据么?
不能够,尽管他们的域名什么都雷同,然而对于浏览器标签来说他们是不同的窗口,他们之间的数据是无奈进行沟通的。
2.sessionStorage
是否传递给不同的窗口?
能够。个别有两种形式,一种是标签关上,一种是window.open的形式关上。
-
标签的形式须要留神的是在chrome的89版本之后必须要带
rel="opener"
<!--在新版chrome无奈带过来sessionStorage的值--> <a href="index.html" target = '_blank'>跳转新页面</a> <!--在新版chrome能够带过来sessionStorage的值--> <a href="index.html" target = '_blank' rel="opener">跳转新页面1</a>
-
window.open能够关上并且能够将sessionStorage带过来。
window.open('index.html')
3.在新的窗口扭转新的sessionStorage,老窗口的值会对应发生变化么?
不会,因为相当于是将老窗口以后的状态值深拷贝了一份给新窗口,之后再各自的窗口进行操作的时候是不会发生变化。
发表回复