localStorage 以及UserData[IE6 IE7]使用
说在前头:
UserData:属于IE6 IE7的老东西。麻烦且体验差,暂且不表
localStorage 属于HTML5的东西,兼容IE8以及其它W3C标准的主流浏览器。所以尽可能的具体解说
注意:
IE下须要server环境。能够使用webstorm编辑器来预览,否则会报错
相关文档:
猎聘:http://www.css88.com/archives/3717
博客园:http://www.cnblogs.com/xiaowei0705/archive/2011/04/19/2021372.html
博客园2:http://www.cnblogs.com/winterIce/archive/2011/09/16/2179281.html
教程:
0-----------------------------------------------------------------》相关属性方法
1-------------------------------------------------------------------》JavaScript userData localStorage的兼容
2-------------------------------------------------------------------》html 1
3.----------------------------------------------------------------------------------->>storage 跨浏览器通讯[IE8不支持]
------------------------------------------------------------------------------------------------------------------------------------------------------------
locaStorage:
增:
ocalStorage.a = 3;//设置a为"3"
localStorage["a"] = "sfsf";//设置a为"sfsf",覆盖上面的值
localStorage.setItem("b","isaac");//设置b为"isaac"
查:
var a1 = localStorage["a"];//获取a的值
var a2 = localStorage.a;//获取a的值
var b = localStorage.getItem("b");//获取b的值
删:
localStorage.removeItem("c");//清除c的值
事件:
if(window.addEventListener)
{
window.addEventListener("storage",handle_storage,false);
}
else if(window.attachEvent)
{
window.attachEvent("onstorage",handle_storage);
}
function handle_storage(){
alert(LocalStorage.getItem("hehe"))
}
清除全部:
localStorage.clear();
localStorage是一个集合。有length属性。能够通过遍历来获取相应的值:
var storage = window.localStorage;
function showStorage(){
for(var i=0;i<storage.length;i++){
//key(i)获得相应的键。再用getItem()方法获得相应的值
document.write(storage.key(i)+ " : " + storage.getItem(storage.key(i)) + "<br>");
}
}
******************************我是切割线~.~********************************************
实例localStorage.js:[兼容IE6
7,用面向对象的方法写~~不知道这样表达是不是正确]:
//userData,做IE7 6 兼容
var UserData = { //新建一个UserData对象来做IE6 7的兼容,注意第一个字母大写
userData : null,//用来推断是否有userData属性,也就是推断是否是IE6 7,或者说是否支持userData属性
name : location.hostname,
init:function(){
if (!UserData.userData) {
try {
UserData.userData = document.createElement('INPUT');
UserData.userData.type = "hidden";
UserData.userData.style.display = "none";
UserData.userData.addBehavior ("#default#userData");
document.body.appendChild(UserData.userData);
var expires = new Date();
expires.setDate(expires.getDate()+365);
UserData.userData.expires = expires.toUTCString();
} catch(e) {
return false;
}
}
return true;
},
setItem : function(key, value) {//设置缓存
if(UserData.init()){
UserData.userData.load(UserData.name);
UserData.userData.setAttribute(key, value);
UserData.userData.save(UserData.name);
}
},
getItem : function(key) {//获取缓存
if(UserData.init()){
UserData.userData.load(UserData.name);
return UserData.userData.getAttribute(key)
}
},
remove : function(key) { //删除缓存
if(UserData.init()){
UserData.userData.load(UserData.name);
UserData.userData.removeAttribute(key);
UserData.userData.save(UserData.name);
}
},
clear:function(){//清除全部缓存
UserData.userData.load(UserData.name);
var now = new Date();
now = new Date(now.getTime()-1);
UserData.userData.expires = now.toUTCString();
UserData.userData.save(UserData.name);
}
};
//做W3C兼容 以及IE6 7的兼容,这里的代码是我自己參照上面的代码写的。原理一样
var LocalStorage={//新建一个LocalStorage对象
localStorage: null,//用来推断是否支持localStorage
setItem:function(key,value)
//设置缓存
{
if(!LocalStorage.localStorage)//假设支持localStorage。就使用它
{
localStorage.setItem(key,value)
}
else{ //否则使用IE6 7的userData方法,也就是上面我们写的那个UserData对象的方法,以下的代码原理一样,就不备注了
UserData.setItem(key,value)
}
},
getItem:function(key)
{
if(!LocalStorage.localStorage)
{
return localStorage.getItem(key)
}
else
{
return UserData.setItem(key);
}
},
removeItem:function(key)
{
if(!LocalStorage.localStorage)
{
return localStorage.removeItem(key)
}
else
{
return UserData.removeItem(key);
}
},
clear:function()
{
if(!localStorage)
{
return localStorage.clear();
}
else{
return
UserData.clear()
}
}
};
******************************我是切割线~.~********************************************
html:
demo.html
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<form action="">
<label for="">商品类型:<input type="text" name="name"/></label>
<label for="">标题:<input type="text" name="title"/></label>
<label for="">价格:<input type="text" name="price"/></label>
<label for=""><input type="button" value="提交" id="submit"/></label>
</form>
<script src="locaStorage.js"></script>
<script src="../jquery.js"></script>
<script>
$(function(){
var names=$("input[name='name']");
var tit=$("input[name='title']");
var price=$("input[name='price']");
var submit=$("#submit");
submit.click(function(){
//保存缓存
LocalStorage.setItem("name",names.val());
LocalStorage.setItem("title",tit.val());
LocalStorage.setItem("price",price.val());
window.location.href="demo2.html";
//读取缓存
});
//读取缓存
names.attr("value",LocalStorage.getItem("name"));
tit.attr("value",LocalStorage.getItem("title"));
price.attr("value",LocalStorage.getItem("price"));
})
</script>
</body>
</html>
图示:
无论你怎样刷新。都会保存数据
******************************我是切割线~.~********************************************
demo2.html
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<form action="">
<h1>你购买的商品例如以下:</h1>
<label for="">商品类型:<input type="text" name="name"/></label>
<label for="">标题:<input type="text" name="title"/></label>
<label for="">价格:<input type="text" name="price"/></label>
</form>
<script src="locaStorage.js"></script>
<script src="../jquery.js"></script>
<script>
$(function(){
var names=$("input[name='name']");
var tit=$("input[name='title']");
var price=$("input[name='price']");
names.attr("value",LocalStorage.getItem("name"));
tit.attr("value",LocalStorage.getItem("title"));
price.attr("value",LocalStorage.getItem("price"));
})
</script>
</body>
</html>
图示:
及时跳转到了新页面,还是能够获取到数据
localStorage 以及UserData[IE6 IE7]使用的更多相关文章
- ie6 ie7 ie8 ie9兼容问题终极解决方案
放下包袱,解决低版本兼容问题 这是一个老生常谈的问题,自然解决这个问题的方案也比较多,下面整理了一些解决方法: 1.强制使用高版本渲染模式. 强制使用Edge模式来解析网页代码 <meta ...
- 完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法
完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法 HTML5的语义化标签以及属性,可以让开发者非常方便地实现清晰的web页面布局,加上CSS3的效果渲染,快速建立丰富灵活的web页 ...
- JS代码判断IE6,IE7,IE8,IE9!
JS代码判断IE6,IE7,IE8,IE9!2011年12月15日 星期四 14:01做网页有时候会用到JS检测IE的版本,下面是检测Microsoft Internet Explorer版本的三种代 ...
- 一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10
行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10 2012-04-25 16:29:04| 分类: 学习 |字号 订阅 在网站开发中不免因为各种兼容问题苦恼,针对兼容问题,其实IE ...
- ie6,ie7,ie8 css bug兼容解决方法
IE浏览器以不支持大量的css 属性出名,同时也因其支持的css属性中存在大量bug. 这里收集了好多的bug以及其解决的办法,都在这个文章里面记录下来了!希望以后解决类似问题的时候能够快速解决,也希 ...
- 解决IE6/IE7/IE8不支持before,after问题
对从事web开发的朋友来讲,低版本的IE永远是一个痛点,不支持最新技术(如css3,html5). 在现在web开发中使用图标字体已经很广泛,如Font Awesome,Bootstrap等,字体图片 ...
- 让IE6/IE7/IE8浏览器支持CSS3属性
让IE6/IE7/IE8浏览器支持CSS3属性 一.下载 您可以狠狠地点击这里:ie-css3.htc,这个玩意儿是让IE浏览器支持CSS3表现的关键东东. 二.上面的是什么东西 首先说说.htc文件 ...
- ie6,ie7,ie8 css bug兼容解决记录
ie6,ie7,ie8 css bug兼容解决记录 转载自:ie6,ie7,ie8 css bug兼容解决记录 - 前端开发 断断续续的在开发过程中收集了好多的bug以及其解决的办法,都在这个文章里面 ...
- IE6 IE7 ‘JSON’ 未定义
今天在调试javascript程序,在FireFox和Chrome没有问题,但是在IE中,一些可以,就会出现如标题的错误:‘JSON’ 未定义: 在IE6,IE7一定有此错误,以及IE能设置兼容性视图 ...
随机推荐
- swift 20 - Nested Types
Nested Types 只是为了方便类型的整合和使用 struct BlackjackCard { // nested Suit enumeration enum Suit: Character { ...
- selenium自动化(二).........................................Demo篇
二 编写简单代码 简单代码一: demo1.py 1.from selenium import webdriver driver = webdriver.Chrome() driver.get(& ...
- (六)Redux进阶
1 UI组件与容器组件的拆分 UI组件(傻瓜组件):只负责页面显示,没有任何逻辑 容器组件(聪明组件):并不去管UI到底长成什么样,关注的是整个业务逻辑 2 无状态组件 一个普通的函数就是无状态组件 ...
- 小程序自定义tabbar
代码片段: wechatide://minicode/IUoCyemJ7D3d GitHub: https://github.com/WozHuang/Miniprogram-Demo/tree/ma ...
- HNU 13108 Just Another Knapsack Problem DP + Trie树优化
题意: 给你一个文本串,和一些模式串,每个模式串都有一个价值,让你选一些模式串来组成文本串,使获得的价值最大.每个模式串不止能用一次. 思路: 多重背包,枚举文本串的每个位置和模式串,把该模式串拼接在 ...
- LibSVM C/C++
本系列文章由 @YhL_Leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/50179779 在LibSVM的库的sv ...
- 聊聊高并发(四十四)解析java.util.concurrent各个组件(二十) Executors工厂类
Executor框架为了更方便使用,提供了Executors这个工厂类.通过一系列的静态工厂方法.能够高速地创建对应的Executor实例. 仅仅有一个nThreads參数的newFixedThrea ...
- nj06---包
二.创建包 1.包的概念 包是在模块基础上更深一步的抽象,Node.js的包类似于C/C++的函数库或者java的类库,它讲某个独立的功能封装起来,用于发布.更新.依赖管理的版本控制.开发了npm来解 ...
- m_Orchestrate learning system---二十三、如何搜索概念图插件
m_Orchestrate learning system---二十三.如何搜索概念图插件 一.总结 一句话总结:要在百度你们搜索前端组件,前端组件 概念图工具,js概念图工具等等这些 用的话用go ...
- hpuoj--校赛--与学妹滑雪(最短路+精度判断)
问题 G: 感恩节KK专场--与学妹滑雪 时间限制: 1 Sec 内存限制: 128 MB 提交: 284 解决: 25 [提交][状态][讨论版] 题目描述 这周下的雪好大好大,不过这正和KK学 ...