说在前头:



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]使用的更多相关文章

  1. ie6 ie7 ie8 ie9兼容问题终极解决方案

    放下包袱,解决低版本兼容问题   这是一个老生常谈的问题,自然解决这个问题的方案也比较多,下面整理了一些解决方法: 1.强制使用高版本渲染模式. 强制使用Edge模式来解析网页代码 <meta ...

  2. 完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法

    完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法   HTML5的语义化标签以及属性,可以让开发者非常方便地实现清晰的web页面布局,加上CSS3的效果渲染,快速建立丰富灵活的web页 ...

  3. JS代码判断IE6,IE7,IE8,IE9!

    JS代码判断IE6,IE7,IE8,IE9!2011年12月15日 星期四 14:01做网页有时候会用到JS检测IE的版本,下面是检测Microsoft Internet Explorer版本的三种代 ...

  4. 一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10

    行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10 2012-04-25 16:29:04| 分类: 学习 |字号 订阅 在网站开发中不免因为各种兼容问题苦恼,针对兼容问题,其实IE ...

  5. ie6,ie7,ie8 css bug兼容解决方法

    IE浏览器以不支持大量的css 属性出名,同时也因其支持的css属性中存在大量bug. 这里收集了好多的bug以及其解决的办法,都在这个文章里面记录下来了!希望以后解决类似问题的时候能够快速解决,也希 ...

  6. 解决IE6/IE7/IE8不支持before,after问题

    对从事web开发的朋友来讲,低版本的IE永远是一个痛点,不支持最新技术(如css3,html5). 在现在web开发中使用图标字体已经很广泛,如Font Awesome,Bootstrap等,字体图片 ...

  7. 让IE6/IE7/IE8浏览器支持CSS3属性

    让IE6/IE7/IE8浏览器支持CSS3属性 一.下载 您可以狠狠地点击这里:ie-css3.htc,这个玩意儿是让IE浏览器支持CSS3表现的关键东东. 二.上面的是什么东西 首先说说.htc文件 ...

  8. ie6,ie7,ie8 css bug兼容解决记录

    ie6,ie7,ie8 css bug兼容解决记录 转载自:ie6,ie7,ie8 css bug兼容解决记录 - 前端开发 断断续续的在开发过程中收集了好多的bug以及其解决的办法,都在这个文章里面 ...

  9. IE6 IE7 ‘JSON’ 未定义

    今天在调试javascript程序,在FireFox和Chrome没有问题,但是在IE中,一些可以,就会出现如标题的错误:‘JSON’ 未定义: 在IE6,IE7一定有此错误,以及IE能设置兼容性视图 ...

随机推荐

  1. SpringBoot学习笔记(9)----SpringBoot中使用关系型数据库以及事务处理

    在实际的运用开发中,跟数据库之间的交互是必不可少的,SpringBoot也提供了两种跟数据库交互的方式. 1. 使用JdbcTemplate 在SpringBoot中提供了JdbcTemplate模板 ...

  2. 优动漫PAINT基础系列之存储格式说明

    本篇经验带大家了解优动漫PAINT可以存储成哪些格式! 最近有收到试用优动漫PAINT个人版试用版的小伙伴提问,优动漫PAINT可以导出什么格式文件呢?今天就这一问题做一下解答〜 优动漫PAINT[试 ...

  3. FCC高级编程之Inventory Update

    Inventory Update Compare and update the inventory stored in a 2D array against a second 2D array of ...

  4. 滴滴云安装mysql数据库

    Linux CentOS安装配置MySQL数据库   没什么好说的,直接正面刚吧. 安装mysql数据库 a)下载mysql源安装包:wget http://dev.mysql.com/get/mys ...

  5. bzoj4551 [HEOI2016]树

    题目描述 在2016年,佳媛姐姐刚刚学习了树,非常开心.现在他想解决这样一个问题:给定一颗有根树(根为1),有以下 两种操作:1. 标记操作:对某个结点打上标记(在最开始,只有结点1有标记,其他结点均 ...

  6. BZOJ 1594 [Usaco2008 Jan]猜数游戏(线段数)

    1594: [Usaco2008 Jan]猜数游戏 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 626  Solved: 260[Submit][S ...

  7. SpringBoot之通过Maven将项目打包成ROOT.war-yellowcong

    在项目中,我们通过maven的插件,将项目达成war包,然后通过jenkins,自动化部署项目. 核心的maven配置文件,下面这一段pom.xml的配置文件. 将项目打包成ROOT.war < ...

  8. 每一个程序猿都应该用MBP

    换笔记本的想法非常久了.前段时间换工作就想看换工作之后是什么情况吧. 可能工作配的笔记本就是MBP.后来发现是想多了,新工作的笔记本是Thinkpad X240. 配置全然够用了,8G内存+128G的 ...

  9. 我是怎么利用微信做兼职月入1W的

    物价上涨.导致非常多人都感觉如今的收入入不敷出,有的是迫于生活压力.有的是为了提高生活质量,等等都想好好利用业余时间来做点兼职,当然我也不例外.正好笔者在微信刚推出一段时间的时候利用微信来做点兼职赚点 ...

  10. 更改linux文件的拥有者及用户组(chown和chgrp)

    .使用chown命令更改文件拥有者 在 shell 中,能够使用chown命令来改变文件全部者.chown命令是change owner(改变拥有者)的缩写.须要要注意的是,用户必须是已经存在系统中的 ...