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. Masonry 创建Button的简单使用

    代码创建控制器,控件在实际开发中很实用,方便快捷,而Masonry第三方框架更是将代码创建效率提高了很多! 如何代码创建?如何使用第三方框架? 1.首先删除系统自带的SB,详见下图 2.在AppDel ...

  2. CSS 盒子

    转载自:http://www.zblog.us/programing/web/css/cssbox-introduce-2.html 盒子模型定义 如果CSS对HTML文档元素生成了一个描述该元素在H ...

  3. 捷波朗 jabra BT3030 蓝牙耳机

    蓝牙版本V2.0 通话时间 8小时 按键说明:轻敲 快按轻敲两下 在1.5秒内快速按两下按 大约 1秒钟按住 大约 4秒钟 充电提示绿灯闪亮 正在充电持续绿灯 已完全充满电 检查电量按 音量上调(+) ...

  4. python导入opencv解决no module named cv2问题

    最近ubuntu用的比较多,在写神经网络代码时也会经常接触到python,但是python的环境配置确实是个头疼的问题. 尤其是接触到opencv时,需要导入opencv的库文件,网上也有很多方法,本 ...

  5. Python ---list,dict,str

    Python中定义常量 都用大写 Pip 安装python第三方模块的命令  一般默认都放在/python27/lib/site-pak List.count(‘元素’)-------------统计 ...

  6. 虚拟机中Linux系统盘空间不足

    虚拟机中Linux系统盘在使用过程中, 出现空间不足的提示. 使用命令du --max-depth=1 -h 查看Home目录下各个文件占用空间, 发现是./cache(隐藏文件)占用很大空间.进入c ...

  7. Markdown使用指南(2)—— 键盘符号说明

    符号 中文名 英文名 ! 叹号 exclamation mark/bang ? 问号 question mark , 逗号 comma . 点号 dot/period/point : 冒号 colon ...

  8. 修正iOS从照相机和相册中获取的图片方向(转)

    - (UIImage *)fixOrientation { // No-op if the orientation is already correct if (self.imageOrientati ...

  9. 佛洛依德 c++ 最短路径算法

    //20142880 唐炳辉 石家庄铁道大学 #include<iostream> #include<string> using namespace std; #define ...

  10. .NET蓝牙开源库:32feet.NET

    在用C#调用蓝牙编程一文中我留个小悬念就是:InTheHand.Net.Personal.dll是怎么来的?这篇文章来解答这个问题,InTheHand.Net.Personal.dll就是来源于今天要 ...