码迷,mamicode.com
首页 > 其他好文 > 详细

7. 本地存储Storage

时间:2015-11-22 13:46:11      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:

Storage API 
setItem(): 
- 设置数据,key\value类型,类型都是字符串 
- 可以用获取属性的形式操作 
 
getItem(): 
- 获取数据,通过key来获取到相应的value 
 
removeItem(): 
- 删除数据,通过key来删除相应的value 
 
clear(): 
- 删除全部存储的值 
例子 :  保存注册信息  
 
存储事件: 
- 当数据有修改或删除的情况下,就会触发storage事件 
在对数据进行改变的窗口对象上是不会触发的 在当前页面的事件不会触发,共享的页面会触发,多个嵌套的页面
- Key : 修改或删除的key值,如果调用clear(),key为null 
- newValue  :  新设置的值,如果调用removeStorage(),key为null 
- oldValue :  调用改变前的value值 
- storageArea : 当前的storage对象 url :  触发该脚本变化的文档的
- url  :  触发该脚本变化的文档的url
- 注:session同窗口才可以  例子:iframe操作(嵌套的页面也可以触发storage事件
 
例子:iframe操作 例子 :   同步购物车(可同步更新,打开新页面,能把旧页面的数据更新过来
  
 
多选框同步:
html
<input type="button" value="设置" />
<input type="button" value="获取" />
<input type="button" value="删除" />
<input type="text" />

 

javascript
 var aInput = document.getElementsByTagName(‘input‘);

    for (var i = 0;i < aInput.length; i++) {
        aInput[i].onclick = function() {
            if (this.checked) {
                window.localStorage.setItem(‘sel‘, this.value);
            }
            else{
                window.localStorage.setItem(‘onSel‘, this.value);
            }
        };
    }


    window.addEventListener(‘storage‘, function(ev) {  //当前页面的事件不会触发(触发的事件不会在当前页面发生,在共享的页面触发)
        if (ev.key == ‘sel‘) {
            for(var i=0;i<aInput.length;i++){
                if (ev.newValue == aInput[i].value) {
                    aInput[i].checked = true;
                }
            }
        } else if (ev.key == ‘onSel‘) {
            for(var i=0; i < aInput.length; i++){
                if (ev.newValue == aInput[i].value) {
                    aInput[i].checked = false;
                }
            }
        }
    },false);

此处checkbox有个bug,某个选项选中->取消->再选中时,不会触发storage事件

 

 

7. 本地存储Storage

标签:

原文地址:http://www.cnblogs.com/zouxinping/p/4985613.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!