基于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. 012——matlab判断变量是否存在

    (一)参考文献:https://www.ilovematlab.cn/thread-48319-1-1.html (二) clc clear a = exist('a') ans =1 clc cle ...

  2. HDP 企业级大数据平台

    一 前言 阅读本文前需要掌握的知识: Linux基本原理和命令 Hadoop生态系统(包括HDFS,Spark的原理和安装命令) 由于Hadoop生态系统组件众多,导致大数据平台多节点的部署,监控极其 ...

  3. MongoDB 复制集监控

    1.复制集状态查询:rs.status() 2.查看当前副本集oplog状态:rs.printReplicationInfo() 3.查看复制延迟:rs.printSlaveReplicationIn ...

  4. DVWA命令注入扣动分析

    本周学习内容: 1.学习web应用安全权威指南: 2.观看安全学习视频: 实验内容: 进行DVWA命令注入漏洞 实验步骤: Low 1.打开DVWA,进入DVWA Security模块将 Level修 ...

  5. 10分钟用Python爬取最近很火的复联4影评

    欲直接下载代码文件,关注我们的公众号哦!查看历史消息即可! <复仇者联盟4:终局之战>已经上映快三个星期了,全球票房破24亿美元,国内票房破40亿人民币. 虽然现在热度逐渐下降,但是我们还 ...

  6. 39、Parquet数据源之自动分区推断&合并元数据

    一.自动分区推断 1.概述 表分区是一种常见的优化方式,比如Hive中就提供了表分区的特性.在一个分区表中,不同分区的数据通常存储在不同的目录中, 分区列的值通常就包含在了分区目录的目录名中.Spar ...

  7. CODE FESTIVAL 2016 Final 题解

    传送门 \(A\) 什么玩意儿-- const char c[]={"snuke"}; char s[15];int n,m; int main(){ scanf("%d ...

  8. shell编程题(四)

    编译当前目录下的所有.c文件 #!/bin/bash ] ;] 输入参数个数 echo "Please follow up file.c!" echo "eg: ./ma ...

  9. python中的zip函数的使用

    >>> x = [, , ] >>> y = [, , ] >>> z = [, , ] >>> xyz = list(zip( ...

  10. Android中为何使用Log而不用System.out

    Android中为何使用Log而不用System.out System.out除了使用方便一点以外有以下缺点:日志不可控制,打印时间无法确定,不能添加过滤器,日志没有级别之分. 使用Log比如想打印一 ...