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. squid-nginx 基本配置

    #本地绑定的IP端口 http_port 192.168.1.253:801 vhost visible_hostname test-squid cache_dir ufs c:/squid/cach ...

  2. C语言 01 形参实参

    之前的都在印象笔记记录 continue 结束本轮循环体,进入下一次循环.break 直接结束整个while循环 形参:定时函数时函数名后面中的参数实参:调用函数时传入的具体数据基本数据类型作为形参, ...

  3. Java设计模式(一)——代理模式

    有高手云:了解设计模式才算是入门级的程序员. 所以为了入门我打算把我学习到的设计模式逐条总结下来.和别人的文章不同,我几乎只提供了测试源码与细节分类.原因是,我相信对于设计来说,你永远无法给出终极答案 ...

  4. C++中的4个类型转换关键字

    转载:http://poplars.blog.163.com/blog/static/1394221742013021111210567/ n多书里面推荐要养成使用转型关键字的习惯,几年过去了,感觉还 ...

  5. js 判断移动设备、pc端、android、iPhone、是否为微信、微博、qq空间

    varbrowser = {   versions: function () {      var u = navigator.userAgent, app = navigator.appVersio ...

  6. 【转】创建SVN仓库的步骤

    转载地址:http://www.cnblogs.com/ivan0626/p/3783053.html   今天在客户现场联调,两个开发人员之间的代码想用SVN来管理,所以就临时在本地机器上搭建一个S ...

  7. 课程设计 --- 黑白棋中的 AI

    原文链接:https://www.dreamwings.cn/reversi/3013.html 到了考试周了佯,可是偏偏这个时候迎来了很多很多的课程设计,幸好教授把C语言的课程设计提前发出了,不然都 ...

  8. thinkphp相关总结

    1.model层验证多个字段唯一性 protected $_validate = array( array('appid,awardid', '', '不能重复添加', self::MUST_VALI ...

  9. 外国javascript资源搜索

    https://www.javascripting.com/search?q=canvas

  10. [Dynamic Language] 用Sphinx自动生成python代码注释文档

    用Sphinx自动生成python代码注释文档 pip install -U sphinx 安装好了之后,对Python代码的文档,一般使用sphinx-apidoc来自动生成:查看帮助mac-abe ...