html页面  
 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="js/sea.js"></script>
    <script>
        seajs.config({
            alias:{
                cookie:'cookie',
                strong:'strong'
            }
        })
 
        seajs.use("main")
 
    </script>
</head>
<body>
 
</body>
</html>
 
 
 
 
main.js页面
 
define(function(require,exports,module){
    var strong=require("strong");
 
        strong.setItem("hellowords","01-20 16:15",1);
 
        strong.setItem("style","hello",1);
 
        //strong.removeItem('style');
 
        //strong.removeItem("hellowords");
 
        strong.setItem("lili","hello",1);
 
        strong.setItem("z","zz",1);
 
        //strong.removeItem('lili');
 
        strong.setItem('guo','boyu',1);
 
        //strong.getItem("guo")
        console.log(strong.getItem("guo"))
 
})
 
 
strong.js页面
 
define(function(require,exports,module){
    var ls=window.localStorage;
 
    if(!ls){// 如果支持webStorage
        return{
 
            getItem:function(key){
                return ls.getItem(key);
            },
            setItem:function(key,val){
                this.removeItem(key);
                return ls.setItem(key,val);
            },
            removeItem:function(key){
                return ls.removeItem(key);
            }
        }
 
 
    }else{// 支持cookie
        var cookie=require("cookie");
        return{
            getItem:function(key){
                return cookie.getItem(key)
            },
            setItem:function(key,val,days){
                cookie.setItem(key,val,days)
            },
            removeItem:function(key){
                cookie.removeItem(key)
            }
        }
 
    }
 
 
})
 
cookie页面
 
 
define(function(require,exports,module){
 
    return {
 
        getItem:function(key){
            //console.log(key)
            var reg=new RegExp('(^| )'+key+'=([^;]*)(;|$)');
            var arr=document.cookie.match(reg);
            //console.log(arr)
            if(arr) return unescape(arr[2]);
            return null;
        },
        setItem:function(key,val,days){
            //如果不设置天数 , 默认为30天
            days=days?days:30;
            var exp=new Date();
            exp.setTime(exp*1+days*(24*60*60*1000));
            if(typeof(Domain)==="undefined" || Domain==null){
                Domain=location.host // 获取主机地址
            }
            document.cookie=key+'='+escape(val)+';expires='+exp+';domain='+Domain+';path=/';
        },
        removeItem:function(key){
            // 设置时间过期
            if(this.getItem(key)){
                this.setItem(key,"",-1);
            }
        }
 
    }
 
 
 
})
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

兼容cookie和webStorage的更多相关文章

  1. JavaScript高级编程———数据存储(cookie、WebStorage)

    JavaScript高级编程———数据存储(cookie.WebStorage) <script> /*Cookie 读写删 CookieUtil.get()方法根据cookie的名称获取 ...

  2. cookie,webstorage的理解

    在前两天的开发时,遇到一个问题,需要将一个网页在预加载时,优先出一个弹出框,但是再次加载时不希望它出现,在经过一段时间的搜索和尝试之后,发现了大多使用的两种方式:生成cookie和webStorage ...

  3. 一文梳理Web存储,从cookie,WebStorage到IndexedDB

    前言 HTTP是无状态的协议,网络早期最大的问题之一是如何管理状态.服务器无法知道两个请求是否来自同一个浏览器.cookie应运而生,开始出现在各大网站,然而随着前端应用复杂度的提高,Cookie 也 ...

  4. cookie与webStorage区别

  5. cookie和webstorage

    HTML 5 Web 存储 HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储 <!DOCTYPE html> <html> ...

  6. Servlet的cookie使用,500报错,tomcat和cookie语法不兼容解决

    出现类似上图的错误,应该是tomcat和cookie的语法不兼容 cookie不要用逗号","作分隔符,换井号#试试就可以了

  7. QQ浏览器兼容模式下Cookie失效 导致的NetCore Cookie认证失效

    最近在写NetCore项目采用的是NetCore的Cookie认证.结果偶然发现QQ浏览器登录不好用.这里先需要了解一下set-cookie中的SameSite属性  导致原因 首先Fiddler 4 ...

  8. WebStorage记录滚动条位置

    因关注公众号<HTML5学堂>看到这篇文章 "利用本地存储,记录滚动条的位置" ,便好奇敲来试试,然后又看了一些关于WebStorage的资料 附上这篇文章的地址 ht ...

  9. 【转】深入解析cookie

    来源:http://www.freebuf.com/articles/web/42802.html 写的超级详细,mark下,刚好学习爬虫的时候,有用到cookie模仿登录的,就顺便了解下. 0×00 ...

随机推荐

  1. Used Query

    ---  查询 look back 6 days logic period_key. select s.store_id, i.upc, sf.period_key from JNJ_CASINO_H ...

  2. python之在线PK游戏(第六天)

      本节作业: 熟练使用类和模块,写一个交互性强.有冲突的程序. 故本次写了一个文字回合制的PK游戏,系统主程序为根目录下的:game_menu.py 1. 系统功能模块: 第六天的作业:文字游戏程序 ...

  3. spring " expected single matching bean but found 2" 问题一例。

    初入java,使用spring时遇到一个问题,左边是一个接口和实现.右边是service和实现. @Service@Transactional(rollbackFor = Exception.clas ...

  4. jQuery瀑布流插件——jQuery.Waterfall

    插件--jQuery.Waterfall 思路: 其实只要了解了整个流程,要实现这个插件也不难,大家都玩过俄罗斯方块吧,原理差不多,找到合适的地方叠上去就好了,在这里,每个块的宽度是必需给定的,然后计 ...

  5. Linux手绑IP

    修改配置文件vim /etc/sysconfig/network-scripts/ifcfg-eth0 注释dhcp#BOOTPROTO="dhcp" 注释ipv6#IPV6INI ...

  6. Java当中的反射

    1:反射的概念 反射是指一类应用,它们能够自描述和自控制.也就是说,这类应用通过采用某种机制来实现对自己行为的描述(self-representation)和监测(examination),并能根据自 ...

  7. [LeetCode_2] Add Two Numbers

    LeetCode: 2. Add Two Numbers /** * Definition for singly-linked list. * struct ListNode { * int val; ...

  8. 自动拒绝恶意IP远程登录Linux服务器脚本

    当我们已经配置了iptables防火墙,我们允许22端口对外网所有人访问,当然这也是为了方便,我们在任何地方都连接上,没有做VPN,也没有做ssh密钥验证,但是我们的密码设置得非常复杂,大小写.特殊符 ...

  9. AfxBeginThread中使用updatedata出错

    原因:MFC对象不支持多线程操作,不能供多个线程进程使用,所以尽量不要在线程里面更新界面. 解决办法: 1.将工程改为release 2.使用控件来SetWindowText 3.在线程里面发送消息 ...

  10. 【转载】Windows 7 不同安装模式简要区别(图解)

    ---------------------------------------------------------------------------------------------------- ...