JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的。而cookie是运行在客户端的,所以可以用JS来设置cookie.

  在这里分别通过js和jquery两种方式说明对cookie的具体使用:

一、cookie在jquery中的使用:

  1、引入相对应的插件:

<script type="text/javascript" src="../js/jquery.min.js"></script>
<script src="jquery.cookie.js" type="text/javascript"></script>

  2、html模板例子:

<form action="">
<div>
<label>姓名:</label><input type="text" id="name" val=""/>
</div>
<div>
<label>地址:</label><input type="text" id="address" val=""/>
</div>
<button type="button" id="saveCookie">保存cookie</button>
<button type="button" id="getCookie">获得cookie</button>
<button type="reset" id="resetCookie">重置cookie</button>
</form>

3、cookie相关的jquery操作代码:

	$(function(){
$("#name").val($.cookie("name"));
$("#address").val($.cookie("address"));
//将值保存到cookie 以key-value的形式
$("#saveCookie").bind("click",function(){
$.cookie("name",$("#name").val(),{expires:1});
$.cookie("address",$("#address").val(),{expirse:1});
});
//获得cookie中对应的值
$("#getCookie").bind("click",function(){
console.log($.cookie("name"));
console.log($.cookie("address"));
});
//将cookie的key对应的value值设置为null
$("#resetCookie").bind("click",function(){
$.cookie("name",null);
$.cookie("address",null);
});
});

  具体解析:

  a:读取cookie:  $.cookie(key);

  b:写入cookie:  $.cookie(key,value,[{option}]);

    [option]:包括的参数有:path/ expires /domin /secrue 

      expires:有限日期,可以是一个整数或一个日期(单位:天)。  这个地方也要注意,如果不设置这个东西,浏览器关闭之后此cookie就失效了

      path: cookie值保存的路径,默认与创建页路径一致。

      domin: cookie域名属性,默认与创建页域名一样。  这个地方要相当注意,跨域的概念,如果要主域名二级域名有效则要设置  ".xxx.com"

      secrue: 一个布尔值,表示传输cookie值时,是否需要一个安全协议。默认值:false。

      raw: 默认值:false。 默认情况下,读取和写入cookie的时候自动进行编码和解码(使用encodeURIComponent编码,decodeURIComponent解码)。

      要关闭这个功能设置raw: true即可。

    注:1.   当没有指明cookie有效时间时,所创建的cookie有效期默认到用户关闭浏览器为止,所以被称为“会话cookie(session cookie)”

        若设置了日期,那么设置的cookie被称为“持久cookie”。

      2.   在默认情况下,只有设置cookie的网页才能读取该cookie。如果想让一个页面读取另一个页面设置的cookie,必须设置cookie的路径。

        cookie的路径用于设置能够读取cookie的顶级目录。将这个路径设置为网站的根目录(path: '/'),可以让所有网页都能互相读取cookie(一般不要这样设置,防止出现冲突)

  c:销毁某个key的值: $.cookie(key,NULL);

    注:如果你想删除一个定义了有效路径的cookie,你需要在调用函数时包含这个路径:$.cookie('the_cookie', null, { path: '/' });。

4、操作中需要注意的事项:

  a: 如果google浏览器提示:has no method $.cookie。火狐浏览器提示:$.cookie is not a function;

    可能的原因是:同一个页面两次或者多次引入Jquery插件就会报此错误。

  b: cookie本质上是一个txt文本,因此只能够存入字符串,对象通常要序列化之后才能存入cookie,而取的时候要反序列才又能得到对象。

  cookie保存对象的例子如下:

<form action="">
<div>
<label>姓名:</label><input type="text" id="name" val=""/>
</div>
<div>
<label>地址:</label><input type="text" id="address" val=""/>
</div> <button type="button" id="savePerCookie">保存人cookie</button>
<button type="button" id="getPerCookie">获得人cookie</button>
</form> <script type="text/javascript">
$(function(){
//保存对象到cookie
$("#savePerCookie").bind("click",function(){
var person=new Object();
person.name=$("#name").val();
person.address=$("#address").val();
var personStr=JSON.stringify(person);
$.cookie("person",personStr);
});
//获得人对象
$("#getPerCookie").bind("click",function(){
if($.cookie("person")){
var personStr=$.cookie("person");
var person=JSON.parse(personStr);
$("#name").val(person.name);
$("#address").val(person.address);
}
});
}); </script>

  5、检查cookie是否可用的方法

	$(document).ready(function() {
var dt = new date();
dt.setseconds(dt.getseconds() + 60);
document.cookie ="cookietest=1; expires="+ dt.togmtstring();
var cookiesenabled = document.cookie.indexof("cookietest=") != -1;
if(!cookiesenabled){
//cookies不能用……..
}
});

二、js操作cookie的方法

  使用js操作cookie,不需要引入其他的插件,使用插件进行操作cookie很容易,但是有时候会出现不兼容的情况,这时候,我们就要回归基础,使用最基础的方法实现我们的目的。接下来,我们来看一下用js如何进行cookie的操作:

1、cookie的基础原理

  cookie中保存数据是用键值对的方式,即key-value。各个cookie之间用“;”分号隔开。

2、设置cookie、读取cookie、销毁cookie的function

//设置cookie
function setCookie(name,value,time){
var exp = new Date();
var Days = 30;
if(time!=null){
Days=time;
}
exp.setTime(exp.getTime() + Days*24*60*60*1000); //expires 表示的是时间点 例如:Thu, 28 Jan 2016 08:46:01 GMT
document.cookie=name+"="+escape(value)+";expires="+exp.toGMTString();
}
//读取cookie
function getCookie(name){
var arr,reg=new RegExp("(^| )"+name+"=([^;]*(;|$))");
if(arr=document.cookie.match(reg))
return unescape(arr[2]).replace(";","");
else
return null;
}
//销毁cookie
function delCookie(){
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=getCookie(name);
if(cval!=null)
document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}

3、function的应用

	$("#saveCookie").bind("click",function(){
setCookie("name",$("#name").val(),1);
setCookie("address",$("#address").val(),1);
});
$("#getCookie").bind("click",function(){
$("#name").val(getCookie("name"));
$("#address").val(getCookie("address"));
});

  

jquery和js cookie的使用解析的更多相关文章

  1. jQuery插件 -- 表单验证插件jquery.validate.js, jquery.metadata.js

    原文地址:http://blog.csdn.net/zzq58157383/article/details/7718352   最常使用JavaScript的场合就是表单的验证,而jQuery作为一个 ...

  2. jQuery插件 -- 表单验证插件jquery.validate.js

    最常使用JavaScript的场合就是表单的验证,而jQuery作为一个优秀的JavaScript库,也提供了一个优秀的表单验证插件----Validation.Validation是历史最悠久的jQ ...

  3. 表单验证插件jquery.validate.js

    最常使用JavaScript的场合就是表单的验证,而jQuery作为一个优秀的JavaScript库,也提供了一个优秀的表单验证插件----Validation.Validation是历史最悠久的jQ ...

  4. jquery.cookie用法详细解析,封装的操作cookie的库有jquery.cookie.js

    jquery.cookie用法详细解析 需要注意存入cookie前,对数据进行序列化, 得到后在反序列化: 熟练运用:JSON.stringify();和JSON.parse(): 通常分为如下几个步 ...

  5. jquery.cookie用法详细解析

    本篇文章主要是对jquery.cookie的用法进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助 Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将 ...

  6. jQuery和js之Cookie实现

    Web开发者的朋友们基本上都知道,jQuery是对js的封装.今天之所以想讲解这个问题,主要是因为Cookie用的还是比较多,应用场景除了老生常谈的购物车,还有就是用户状态(以我之前开发的一个项目除了 ...

  7. Jquery和js实现cookie操作手机浮层广告;附加:js获取、添加、删除cookie

    1.jquery cookie包实现手机上的浮层广告 <span style="font-size:18px;">$(document).ready(function( ...

  8. jQuery与直接写JS的区别详细解析

    jQuery代码具体的写法和原生的Javascript写法在执行常见操作时的区别如下所示.需要的朋友可以过来参考下     要使用jQuery,首先要在HTML代码最前面加上对jQuery库的引用,比 ...

  9. 表单验证插件之jquery.validate.js

    提到表单验证的插件,第一个想到的就是jquery.validate.js,所以小生想在这里稍微详细地说一下这款插件的具体使用方法,便于理解,我直接附上整段demo的代码(没怎么调样式,主要是看js): ...

随机推荐

  1. 搭建Git远程仓库(也就是Git服务器,不用再连Github了)

    github上一般托管的代码都是公开的,任何人都可以查看.复制下载等,而私有的项目则需要付费.所以可以自己搭建一个git服务,自己人用. 首先安装git: sudo apt-get install g ...

  2. Unity3d Fast Indirect illumination Using Two Virtual Spherical Gaussian Lights-Square Enix论文

    博主实现(in Unity3d 5) used one spotlight 史克威尔效果展示(夜光引擎?) 博主近期渲染:最近用unity5弄的一些渲染 ---- by wolf96  http:// ...

  3. HDOJ/HDU 1251 统计难题(字典树啥的~Map水过)

    Problem Description Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己 ...

  4. Java异常错误的面试题及答案

    1) Java中什么是Exception? 这个问题经常在第一次问有关异常的时候或者是面试菜鸟的时候问.我从来没见过面高级或者资深工程师的 时候有人问这玩意,但是对于菜鸟,是很愿意问这个的.简单来说, ...

  5. uva 3523 Knights of the Round Table

    题意:给你n,m n为有多少人,m为有多少组关系,每组关系代表两人相互憎恨,问有多少个骑士不能参加任何一个会议. 白书算法指南 对于每个双联通分量,若不是二分图,就把里面的节点标记 #include ...

  6. SRM 358(1-250,500pt)

    DIV1 250pt 题意:电视目前停留在第100台,有一个遥控器,可以向上或向下换台(需要按键一次),也可以按一些数字,然后直接跳到该台(需要按键次数等于数字数,不需要按确定键).但是,这个遥控一些 ...

  7. Yii 生成表单下拉选框及查询下拉选框

    CHtml类参考: http://www.yiichina.com/api/CHtml#activeDropDownList-detail activeDropDownList() 方法 public ...

  8. 【转】【阮一峰的网络日志】Git 使用规范流程

    作者: 阮一峰 日期: 2015年8月 5日 团队开发中,遵循一个合理.清晰的Git使用流程,是非常重要的. 否则,每个人都提交一堆杂乱无章的commit,项目很快就会变得难以协调和维护. 下面是Th ...

  9. cocos 事件转发

    CCDirector在函数setOpenGLView中设置pobOpenGLView,同时会掉用 m_pobOpenGLView->setTouchDelegate(m_pTouchDispat ...

  10. jQuery CSS 的操作函数

    jQuery CSS 操作函数 下面列出的这些方法设置或返回元素的 CSS 相关属性. CSS 属性 描述 css() 设置或返回匹配元素的样式属性. height() 设置或返回匹配元素的高度. o ...