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>

图示:

及时跳转到了新页面,还是能够获取到数据

时间: 2024-10-09 08:23:18

localStorage 以及UserData[IE6 IE7]使用的相关文章

localStorage 以及UserData[IE6 IE7]是使用

说在前头: UserData:属于IE6 IE7的老东西,麻烦且体验差,暂且不表 localStorage 属于HTML5的东西,兼容IE8以及其他W3C标准的主流浏览器,所以尽可能的详细讲解 相关文档: 猎聘:http://www.css88.com/archives/3717 博客园:http://www.cnblogs.com/xiaowei0705/archive/2011/04/19/2021372.html 教程: 0---------------------------------

meta 标签代码解决IE兼容问题,IE6,IE7,IE8,IE9,IE10(包括360的兼容模式)

最近做了一个项目,客户反映,在360下布局错位,远程调试了一下,发现客户使用的是360的兼容模式,然而我在自己的电脑上测试的时候是正常的(兼容模式也正常):简单研究了一下360的兼容模式,在360的兼容模式下按F12得到下图的调试信息: 经过测试,发现是红框处的设置的ie版本太低导致的,主要是文档模式更改文档模式为相对较高的版本即可解决, 这里,我添加了如下代码 <meta http-equiv="X-UA-Compatible" content="IE=edge,ch

一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10 http://www.jb51.net/css/383986.html

在网站开发中不免因为各种兼容问题苦恼,针对兼容问题,其实IE给出了解决方案Google也给出了解决方案百度也应用了这种方案去解决IE的兼容问题 百度源代码如下 复制代码 代码如下: <!Doctype html> <html xmlns=http://www.w3.org/1999/xhtml xmlns:bd=http://www.baidu.com/2010/xbdml>; <head> <meta http-equiv=Content-Type conten

IE6/IE7中display:inline-block解决办法

IE6/IE7下对display:inline-block的支持性不好. 1.inline元素的display属性设置为inline-block时,所有的浏览器都支持: 2.block元素的display属性设置为inline-block时,IE6/IE7浏览器是不支持的: 对象呈递为内联对象,但是对象的内容作为块对象呈递.旁边的内联对象会被呈递在同一行,允许空格.(准确地说,应用此特性的元素现为内联对象,周围元素保持在同一行,但可以设置宽度和高度等块元素的属性) IE中对内联元素使用displ

SJ9012: IE6 IE7 不支持 JSON 对象

标准参考 JSON 是一种数据交换格式,RFC 4627 对 JSON 进行了详细描述. 根据 ECMA-262(ECMAScript)第 5 版中描述,JSON 是一个包含了函数 parse 和 stringify 的简单对象. parse 函数用来解析一个 JSON 文本(一个 JSON 格式的字符串)到一个 ECMAScript 值(例如 JSON 对象被解析为 ECMAScript 对象, JSON 数组被解析为 ECMAScript 数组,其它类型以此类推):stringify 则相反

转载:ie6,ie7兼容性总结

其实浏览器的不兼容,我们往往是各个浏览器对于一些标准的定义不一致导致的,因此,我们可以进行一些初始化,很多问题都很轻松解决. 下面是14条特殊情况仅供参考:1. 文字本身的大小不兼容.同样是font-size:14px的宋体文字,在不同浏览器下占的空间是不一样的,ie下实际占高16px,下留白3px,ff 下实际占高17px,上留白1px,下留白3px,opera下就更不一样了.解决方案:给文字设定 line-height .确保所有文字都有默认的 line-height 值.这点很重要,在高度

IE6,IE7,IE8下报JS错误:expected identifier, string or number的原因及解决的方法

今天在调试一个页面的时候遇到一个问题,在IE9下执行得非常好的脚本,在IE8里打开的时候弹出错误:expected identifier, string or number,依照经验,应该是定义对象的时候最后一个属性末尾跟了逗号,但检查一遍后没发现有这样的情况,后来细致看了一下报错的位置,发现有定义json对象属性时,属性名没实用引號括起来,于是加了上去再试,问题攻克了. 综上所述,当出现expected identifier, string or number的错误时,你首先应该检查在使用对象

[转载]使用兼容ie6 ie7 ie8 FF的text-overflow:ellips

使用兼容ie6 ie7 ie8 FF的text-overflow:ellipsis超出文本显示省略号来代替截取函数更有利于seo,如果使用截取函数,源代码中的标题是显示不完整的,即便是在title属性中使用了显示完整标题,也不如完整的标题文字连接.这个方法使得两者兼得,既能显示完整标题又对搜索引擎友好. 如果不想显示省略号,那么把text-overflow属性值改成 clip 就行了,显示的还是完整的标题文字连接. 下面是html文件完整代码,已经测试过了,大家复制使用即可. 效果预览: <!D

IE6,IE7,IE8 css bug搜集及浏览器兼容性问题解决方法汇总

http://www.jb51.net/css/85640.html 断断续续的在开发过程中收集了好多的bug以及其解决的办法,都在这个文章里面记录下来了!希望以后解决类似问题的时候能够快速解决,也希望大家能在留言里面跟进自己发现的ie6 7 8bug和解决办法! 1:li边距“无故”增加  任何事情都是有原因的,li边距也不例外.  先描述一下具体状况:有些时候li边距会突然增 加很多,值也不固定(只在IE6/IE7有这种现象),让人摸不着头脑,仔细“研究”发现是由于其低级元素ul的paddi