基于LocalStorage+globalStorage+userData实现的一个本地存储类

userData用来兼容ie6 ie7

由userData模仿Session的方法:浏览器关闭删除保存的记录

 var userStorage = {
isIE : null,
Local : function(){
if(document.all){
var oUserData;
if(!userStorage.isIE){
userStorage.isIE =(function(){
oUserData = document.body;
oUserData.addBehavior("#default#userdata");
})();
}
return {
set : function(key,value){
oUserData.setAttribute(key,value);
oUserData.save("UserData");
},
get : function(key){
oUserData.load("UserData");
return oUserData.getAttribute(key);
},
del : function(key){
oUserData.load("UserData");
oUserData.removeAttribute(key);
oUserData.save("UserData");
}
}
}else{
var localStorage = window.localStorage;
return {
set : function(key,value){
localStorage.setItem(key,value);
},
get : function(key){
return localStorage.getItem(key);
},
del : function(key){
localStorage.removeItem(key);
}
}
}
},
Session : function(){
if(document.all){
var oUserData;
if(!userStorage.isIE){
userStorage.isIE =(function(){
oUserData = document.body;
oUserData.addBehavior("#default#userdata");
})();
}
return {
set : function(key,value){
oUserData.setAttribute(key,value);
oUserData.save("UserData");
window.attachEvent('onbeforeunload', function(event){
if(event.clientX <= 0 || event.clientY <=0){
oUserData.load("UserData");
oUserData.removeAttribute(key);
oUserData.save("UserData");
}
});
},
get : function(key){
oUserData.load("UserData");
return oUserData.getAttribute(key);
},
del : function(key){
oUserData.load("UserData");
oUserData.removeAttribute(key);
oUserData.save("UserData");
}
}
}else{
var sessionStorage = window.sessionStorage;
return {
set : function(key,value){
sessionStorage.setItem(key,value);
},
get : function(key){
return sessionStorage.getItem(key);
},
del : function(key){
sessionStorage.removeItem(key);
}
}
}
},
closeWindow : function(){ }
} var Local = new userStorage.Local();
Local.set("name","dtdxrk");
alert(Local.get("name"));
Local.del("name"); var Session = new userStorage.Session();
Session.set("age","30");
alert(Session.get("age"));
Session.del("age");

原生JavaScript常用本地浏览器存储方法五(LocalStorage+userData的一个浏览器兼容类)的更多相关文章

  1. 原生JavaScript常用本地浏览器存储方法一(方法类型)

    有时需要将网页中的一些数据保存在浏览器端.好处就是当下次访问页面时,直接就可以从本地读取数据,不需要再次向服务器请求数据.目前常用的有以下几种方法: 1.cookie cookie会随着每次HTTP请 ...

  2. 原生JavaScript常用本地浏览器存储方法四(HTML5 LocalStorage sessionStorage)

    HTML5 LocalStorage浏览器的支持的情况如上图,IE在8.0的时候就支持了.不过需要注意的是,IE测试的时候需要服务器环境(或者localhost). 测试自然是检测浏览器是否支持本地存 ...

  3. 原生JavaScript常用本地浏览器存储方法二(cookie)

    JavsScript Cookie概述 cookie是浏览器提供的一种机制,它将document对象的cookie属性提供给JavaScript.可以由JavaScript对其进行控制,而并不是Jav ...

  4. 原生JavaScript常用本地浏览器存储方法三(UserData IE Only)

    UserData的应用范围 serData是微软为IE专门在系统中开辟的一块存储空间,所以说只支持Windows+IE的组合,实际测试在2000(IE5.5).XP(IE6.IE7),Vista(IE ...

  5. 原生javascript实现类似jquery on方法的行为监听

    原生javascript有addEventListener和attachEvent方法来注册事件,但有时候我们需要判断某一行为甚至某一函数是否被执行了,并且能够获取前一行为的参数,这个时候就需要其他方 ...

  6. 原生JavaScript常用的DOM操作

    之前项目一直都是用JQuery或者Vue来做的,确实好用,毕竟帮我们解决了很多浏览器兼容问题,但是后面发现大公司面试题都是要原生Javascript来做,然后我就一脸懵逼哈哈哈,毕竟大公司需要的框架或 ...

  7. 浏览器存储(cookie、localStorage、sessionStorage)

    互联网早期浏览器是没有状态维护,这个就导致一个问题就是服务器不知道浏览器的状态,无法判断是否是同一个浏览器.这样用户登录.购物车功能都无法实现,Lou Montulli在1994年引入到web中最终纳 ...

  8. MUI常用脚本及原生JavaScript常用操作元素方法

    1.mui元素转换html元素 var obj=mui("#id")[0]; 2.事件绑定 var btn = document.getElementById("logi ...

  9. JavaScript常用全局属性与方法

    最近,在学习JavaScript,Java作域链包含全局,记录下常用的全局属性与方法,就当是知识的积累,未列出全部,如需查看全部可参考JS相关的API文档. 常用的全局属性:  全局属性      作 ...

随机推荐

  1. 从0到N建立高性价比的大数据平台(转载)

    2016-07-29 14:13:23 钱曙光 阅读数 794 原文链接:https://blog.csdn.net/qiansg123/article/details/80124521 声明:本文为 ...

  2. H3CNE学习5 STP

    一.STP 1.概念 2.STP开机默认会运行 二.STP操作 1.原理 2.根桥选举,首先比前面的ID,谁小谁就是根桥,如果ID一样就比较mac,谁小谁就是根桥 可以手动修改优先级,图中可以将swA ...

  3. Windows下串口编程

     造冰箱的大熊猫@cnblogs 2019/1/27 将Windows下串口编程相关信息进行下简单小结,以备后用. 1.打开串口 打开串口使用CreateFile()函数.以打开COM6为例: HAN ...

  4. HTML5自定义属性操作

    一.自定义属性(html5标准)data-属性名称="属性值" 自定义属性的名称驼峰式命名规则需要用-隔开 自定义属性名称如果连在一起写,大写会自动转为小写 data-user=& ...

  5. 鼠标经过盒子出现边框(伪元素,定位,css3盒子模型)

    <body> <div> <img src="mi6.png" > </div> </body> div{ width: ...

  6. loj #10131

    抽离题意 求删除一条树边和一条非树边后将图分成不连通的两部分的方案数 对于一棵树,再加入一条边就会产生环.若只有一个环,说明只加入了一条非树边 (x, y),记 lca 为 l, 那么 对于任意一条 ...

  7. [Shell]Docker remote api未授权访问漏洞(Port=2375)

    0x01 简介 该未授权访问漏洞是因为docker remote api可以执行docker命令,从官方文档可以看出,该接口是目的是取代docker 命令界面,通过url操作docker. Docke ...

  8. 使用FCKeditor编辑器上传文件时中文文件名乱码

    修改:editor\filemanager\browser\default\frmupload.html 文件的编码改为UTF-8 实在不行:fckeditor/editor/filemanager/ ...

  9. GB28181技术基础之1 - SIP协议

    SIP 协议,即 会话初始协议(Session Initiation Protocol),是一个应用层的 点对点协议,用于初始.管理和终止网络中的语音和视频会话,是 GB28181 的核心之一. 按照 ...

  10. Phpstudy 无法启动mysql

    原因: 两个mysql版本冲突 本地已经有一个mysql服务(3306)默认开启,再装了phpstudy又会自带一个mysqlla服务(3306) phpstudy启动后会启动mysqlla  发现3 ...