关于cookie的初识和运用(js和jq)
cookie是什么
---------------------------------------------------
cookie是浏览器提供的一种机制,它将document 对象的cookie属性提供给JavaScript。可以由JavaScript对其进行控制,而并不是JavaScript本身的性质。cookie是存于用户硬盘的一个文件,这个文件通常对应于一个域名,当浏览器再次访问这个域名时,便使这个cookie可用。因此,cookie可以跨越一个域名下的多个网页,但不能跨越多个域名使用。
cookie使用场合
---------------------------------------------------
(1)保存用户登录状态。例如将用户id存储于一个cookie内,这样当用户下次访问该页面时就不需要重新登录了,现在很多论坛和社区都提供这样的功能。 cookie还可以设置过期时间,当超过时间期限后,cookie就会自动消失。因此,系统往往可以提示用户保持登录状态的时间:常见选项有一个月、三个 月、一年等。
(2)跟踪用户行为。例如一个天气预报网站,能够根据用户选择的地区显示当地的天气情况。如果每次都需要选择所在地是烦琐的,当利用了 cookie后就会显得很人性化了,系统能够记住上一次访问的地区,当下次再打开该页面时,它就会自动显示上次用户所在地区的天气情况。因为一切都是在后 台完成,所以这样的页面就像为某个用户所定制的一样,使用起来非常方便。
(3)定制页面。如果网站提供了换肤或更换布局的功能,那么可以使用cookie来记录用户的选项,例如:背景色、分辨率等。当用户下次访问时,仍然可以保存上一次访问的界面风格。
cookie的用法
---------------------------------------------------
js方式:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function
setCookie(sName, sValue, oExpires, sPath, sDomain, bSecure) {
//js设置cookie
var
sCookie = sName +
'='
+ encodeURIComponent(sValue);
if
(oExpires) {
var
date =
new
Date();
date.setTime(date.getTime() + oExpires * 60 * 60 * 1000);
sCookie +=
'; expires='
+ date.toUTCString();
}
if
(sPath) {
sCookie +=
'; path='
+ sPath;
if
(sDomain) {
sCookie +=
'; domain='
+ sDomain;
}
if
(bSecure) {
sCookie +=
'; secure'
;
}
document.cookie = sCookie;
}
1
2
3
4
5
6
7
8
9
10
11
function
getCookie(name){
//获取cookie
var
strCookie=document.cookie;
var
arrCookie=strCookie.split(
"; "
);
for
(
var
i=0;i<arrCookie.length;i++){
var
arr=arrCookie[i].split(
"="
);
if
(arr[0]==name){
return
decodeURIComponent(arr[1]);
}
}
return
""
;
}
1
2
3
4
5
6
7
8
function
delCookie(name){
//删除cookie
// 该函数检查下cookie是否设置,如果设置了则将过期时间调到过去的时间;
//剩下就交给操作系统适当时间清理cookie啦
if
(getCookie(name))
{
document.cookie = name +
"="
+
"; expires=Thu, 01-Jan-70 00:00:01 GMT"
;
}
}
jq插件方式:
jq官网http://plugins.jquery.com/搜索cookie插件,几k的大小,使用非常方便:
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.cookie.js"></script>
在引入以上库文件后,使用方式如下:
1
2
3
4
5
6
7
<script>
$.cookie(
'the_cookie'
);
//读取Cookie值
$.cookie(
'the_cookie'
,
'the_value'
);
//设置cookie的值
$.cookie(
'the_cookie'
,
'the_value'
, {expires: 7, path:
'/'
, domain:
'jquery.com'
, secure:
true
});
//新建一个cookie 包括有效期 路径 域名等
$.cookie(
'the_cookie'
,
'the_value'
);
//新建cookie
$.cookie(
'the_cookie'
,
null
);
//删除一个cookie
</script>
关于cookie的初识和运用(js和jq)
cookie是什么
---------------------------------------------------
cookie是浏览器提供的一种机制,它将document 对象的cookie属性提供给JavaScript。可以由JavaScript对其进行控制,而并不是JavaScript本身的性质。cookie是存于用户硬盘的一个文件,这个文件通常对应于一个域名,当浏览器再次访问这个域名时,便使这个cookie可用。因此,cookie可以跨越一个域名下的多个网页,但不能跨越多个域名使用。
cookie使用场合
---------------------------------------------------
(1)保存用户登录状态。例如将用户id存储于一个cookie内,这样当用户下次访问该页面时就不需要重新登录了,现在很多论坛和社区都提供这样的功能。 cookie还可以设置过期时间,当超过时间期限后,cookie就会自动消失。因此,系统往往可以提示用户保持登录状态的时间:常见选项有一个月、三个 月、一年等。
(2)跟踪用户行为。例如一个天气预报网站,能够根据用户选择的地区显示当地的天气情况。如果每次都需要选择所在地是烦琐的,当利用了 cookie后就会显得很人性化了,系统能够记住上一次访问的地区,当下次再打开该页面时,它就会自动显示上次用户所在地区的天气情况。因为一切都是在后 台完成,所以这样的页面就像为某个用户所定制的一样,使用起来非常方便。
(3)定制页面。如果网站提供了换肤或更换布局的功能,那么可以使用cookie来记录用户的选项,例如:背景色、分辨率等。当用户下次访问时,仍然可以保存上一次访问的界面风格。
cookie的用法
---------------------------------------------------
js方式:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
function
setCookie(sName, sValue, oExpires, sPath, sDomain, bSecure) {
//js设置cookie
var
sCookie = sName +
'='
+ encodeURIComponent(sValue);
if
(oExpires) {
var
date =
new
Date();
date.setTime(date.getTime() + oExpires * 60 * 60 * 1000);
sCookie +=
'; expires='
+ date.toUTCString();
}
if
(sPath) {
sCookie +=
'; path='
+ sPath;
if
(sDomain) {
sCookie +=
'; domain='
+ sDomain;
}
if
(bSecure) {
sCookie +=
'; secure'
;
}
document.cookie = sCookie;
}
|
1
2
3
4
5
6
7
8
9
10
11
|
function
getCookie(name){
//获取cookie
var
strCookie=document.cookie;
var
arrCookie=strCookie.split(
"; "
);
for
(
var
i=0;i<arrCookie.length;i++){
var
arr=arrCookie[i].split(
"="
);
if
(arr[0]==name){
return
decodeURIComponent(arr[1]);
}
}
return
""
;
}
|
1
2
3
4
5
6
7
8
|
function
delCookie(name){
//删除cookie
// 该函数检查下cookie是否设置,如果设置了则将过期时间调到过去的时间;
//剩下就交给操作系统适当时间清理cookie啦
if
(getCookie(name))
{
document.cookie = name +
"="
+
"; expires=Thu, 01-Jan-70 00:00:01 GMT"
;
}
}
|
jq插件方式:
jq官网http://plugins.jquery.com/搜索cookie插件,几k的大小,使用非常方便:
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.cookie.js"></script>
在引入以上库文件后,使用方式如下:
1
2
3
4
5
6
7
|
<script>
$.cookie(
'the_cookie'
);
//读取Cookie值
$.cookie(
'the_cookie'
,
'the_value'
);
//设置cookie的值
$.cookie(
'the_cookie'
,
'the_value'
, {expires: 7, path:
'/'
, domain:
'jquery.com'
, secure:
true
});
//新建一个cookie 包括有效期 路径 域名等
$.cookie(
'the_cookie'
,
'the_value'
);
//新建cookie
$.cookie(
'the_cookie'
,
null
);
//删除一个cookie
</script>
|
JS操作COOKIE实现备忘记录的方法
本文实例讲述了JS操作COOKIE实现备忘记录的方法。分享给大家供大家参考,具体如下:
具体涉及JS针对cookie的写入与获取操作,代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
function
getCookie(c_name)
{
if
(document.cookie.length > 0)
{
c_start = document.cookie.indexOf(c_name +
"="
);
if
(c_start!=-1)
{
c_start = c_start + c_name.length + 1;
c_end = document.cookie.indexOf(
";"
, c_start);
if
(c_end == -1)
{
c_end = document.cookie.length;
}
return
unescape(document.cookie.substring(c_start,c_end))
}
}
return
""
}
function
setCookie(c_name,value,expiredays)
{
var
exdate =
new
Date();
exdate.setDate(exdate.getDate() + expiredays);
document.cookie=c_name+
"="
+ escape(value) +
((expiredays==
null
) ?
""
:
";expires="
+exdate.toGMTString());
}
|
通过Jquery.cookie.js实现展示浏览网页的历史记录超管用
本文就是要利用cookie插件,获取用户浏览文章历史记录,并将用户最近浏览历史记录显示在页面。
在需要添加cookie的页面加上如下js
<script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/jquery.cookie.js"></script> <script type="text/javascript"> $(function(){ var art_title = $("title").html(); var art_url = document.URL; var history; var json="["; //json1是第一次注入cookie以后的第一个json,"此时还不是数组" 以点带面的处理 var json1; var canAdd= true; //var json1=eval("({sitename:'dreamdu',sitedate:new Date(1980, 12, 17, 12, 0, 0)})"); if(!$.cookie("history")){ //第一次的时候需要初始化 history = $.cookie("history","{title:\""+art_title+"\""+",url:\""+art_url+"\"}"); }else { //已经存在 history = $.cookie("history"); json1 = eval("("+history+")"); $(json1).each(function(){ if(this.title==art_title){ canAdd=false; return false; } }) if(canAdd){ $(json1).each(function(){ json = json + "{\"title\":\""+this.title+"\",\"url\":\""+this.url+"\"},"; }) json = json + "{\"title\":\""+art_title+"\",\"url\":\""+art_url+"\"}]"; $.cookie("history",json,{expires:1}); } } }) </script>
在展示历史记录的页面添加如下js
<script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/jquery.cookie.js"></script> <script type="text/javascript"> $(function(){ if($.cookie("history")){ var json = eval("("+$.cookie("history")+")"); var list =""; $(json).each(function(){ list = list + "<li><a href='"+this.url+"' target='_blank'>"+this.title+"</a></li>"; alert(this.url); }) $("#list").html(list);; } }); </script> </head>
JS封装cookie操作函数实例(设置、读取、删除)
本文实例讲述了JS封装cookie操作函数。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
/*设置cookie*/
function
setCookie(name, value, iDay)
{
var
oDate=
new
Date();
oDate.setDate(oDate.getDate()+iDay);
document.cookie=name+
'='
+value+
';expires='
+oDate;
};
/*使用方法:setCookie('user', 'simon', 11);*/
/*获取cookie*/
function
getCookie(name)
{
var
arr=document.cookie.split(
'; '
);
//多个cookie值是以; 分隔的,用split把cookie分割开并赋值给数组
for
(
var
i=0;i<arr[i].length;i++)
//历遍数组
{
var
arr2=arr[i].split(
'='
);
//原来割好的数组是:user=simon,再用split('=')分割成:user simon 这样可以通过arr2[0] arr2[1]来分别获取user和simon
if
(arr2[0]==name)
//如果数组的属性名等于传进来的name
{
return
arr2[1];
//就返回属性名对应的值
}
return
''
;
//没找到就返回空
}
};
/*使用方法:getCookie('user')*/
/*删除cookie*/
function
removeCookie(name)
{
setCookie(name, 1, -1);
//-1就是告诉系统已经过期,系统就会立刻去删除cookie
};
/*使用方法:removeCookie('user')*/
|
希望本文所述对大家JavaScript程序设计有所帮助。