Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。
例如:购物网站存储用户曾经浏览过的产品列表,或者门户网站记住用户喜欢选择浏览哪类新闻。 在用户允许的情况下,还可以存储用户的登录信息,使得用户在访问网站时不必每次都键入这些信息。
jquery.cookie.js下载地址:http://plugins.jquery.com/cookie/
使用方法:
1、引入jQuery与jQuery.Cookie.js插件。
<script src="plugins/jquery-1.8.3.min.js" type="text/javascript"></script> <script src="plugins/jquery.cookie.js" type="text/javascript"></script>
2、将cookie写入文件。
var COOKIE_NAME = 'username'; if( $.cookie(COOKIE_NAME) ){ $("#username").val( $.cookie(COOKIE_NAME) ); } $("#check").click(function(){ if(this.checked){ $.cookie(COOKIE_NAME, $("#username").val() , { path: '/', expires: 10 }); //var date = new Date(); //date.setTime(date.getTime() + (3 * 24 * 60 * 60 * 1000)); //三天后的这个时候过期 //$.cookie(COOKIE_NAME, $("#username").val(), { path: '/', expires: date }); }else{ $.cookie(COOKIE_NAME, null, { path: '/' }); //删除cookie } });
函数
语法:$.cookie(名称,值,[option])
(1)读取cookie值
$.cookie(cookieName) cookieName:要读取的cookie名称。
示例:$.cookie("username"); 读取保存在cookie中名为的username的值。
(2)写入设置Cookie值:
$.cookie(cookieName,cookieValue); cookieName:要设置的cookie名称,cookieValue表示相对应的值。
示例:$.cookie("username","admin"); 将值"admin"写入cookie名为username的cookie中。
$.cookie("username",NULL); 销毁名称为username的cookie
(3) [option]参数说明:
expires: 有限日期,可以是一个整数或一个日期(单位:天)。 这个地方也要注意,如果不设置这个东西,浏览器关闭之后此cookie就失效了
path: cookie值保存的路径,默认与创建页路径一致。
domin: cookie域名属性,默认与创建页域名一样。 这个地方要相当注意,跨域的概念,如果要主域名二级域名有效则要设置 ".xxx.com"
secrue: 一个布尔值,表示传输cookie值时,是否需要一个安全协议。
示例:
$.cookie("like", $(":radio[checked]").val(), { path: "/", expiress: 7 })
一个完整设置与读取cookie的页面代码:
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>jQuery学习2</title> <script src="jQuery.1.8.3.js" type="text/javascript"></script> <script src="jquery.cookie.js" type="text/javascript"></script> <script type="text/javascript"> $(function() { $("#username").val($.cookie("username")); if ($.cookie("like") == "刘德华") { $(":radio[value='刘德华']").attr("checked", 'checked') } else { $(":radio[value='张学友']").attr("checked", 'checked') } $(":button").click(function() { $.cookie("username", $("#username").val(), { path : "/", expires : 7 }) $.cookie("like", $(":radio[checked]").val(), { path : "/", expiress : 7 }) }) }) </script> </head> <body> <p> <input type="text" id="username" value="" /> </p> <p> <input type="radio" name="like" value="刘德华" />刘德华 <input type="radio"name="like" value="张学友" />张学友 </p> <p> <input type="button" value="保存" /> </p> </body> </html>
cookie本质上是一个txt文本,因此只能够存入字符串,对象通常要序列化之后才能存入cookie,而取的时候要反序列才又能得到对象。
$(function() {
if ($.cookie("o") == null) {
var o = {
name : "张三",
age : 24
};
var str = JSON.stringify(o);//对序列化成字符串然后存入cookie
$.cookie("o", str, {
expires : 7
//设置时间,如果此处留空,则浏览器关闭此cookie就失效。
});
alert("cookie为空");
} else {
var str1 = $.cookie("o");
var o1 = JSON.parse(str1);//字符反序列化成对象
alert(o1.name);//输反序列化出来的对象的姓名值
}
})
jquery设置cookie过期时间与检查cookies是否可用
//让cookies在x分钟后过期 var date = new date(); date.settime(date.gettime() + (x * 60 * 1000)); $.cookie(‘example', ‘foo', { expires: date }); $.cookie(‘example', ‘foo', { expires: 7});
检查cookies是否可用
$(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不能用…….. } });
原文地址:http://www.jb51.net/article/44557.htm