javascript針對cookie的基本操作實(shí)例詳解
本文實(shí)例講述了javascript針對cookie的基本操作。分享給大家供大家參考,具體如下:
js被C#、JAVA等開發(fā)者視為聲名狼藉的附屬編程語言是有道理的,比如說,對cookie的操作。js就沒有一套類似C#的現(xiàn)成處理方案,而只能由你自己去完成。下面我就將自己學(xué)習(xí)的用面向?qū)ο蟮乃枷雽ookie進(jìn)行處理的學(xué)習(xí)筆記整理一下,以饗讀者。
cookie的常見操作分析:
(1)設(shè)置cookie 包括了添加和修改功能,事實(shí)上如果原有cookie 名稱已經(jīng)存在,那么添加此cookie 就相當(dāng)于修改了此cookie。在設(shè)置cookie 的時候可能還會有一些可選項,用于指cookie 的聲明周期、訪問路徑以及訪問域和安全性等等。為了讓cookie 中能夠存儲中文,該方法中還需要對存儲的值進(jìn)行編碼。
(2)取一個cookie的值,該方法接收cookie 名稱為參數(shù),返回該cookie 的值。因為在存儲該值的時候已經(jīng)進(jìn)行了編碼,所以取值時應(yīng)該能自動解碼,然后返回(這里其實(shí)可以自己設(shè)置返回什么,而不單單是"取一個值"而已)。
(3)刪除一個cookie,刪除cookie 只需將一個cookie 的過期事件設(shè)置為過去的一個時間即可,它接收一個cookie 的名稱為參數(shù),從而刪除此cookie(我的實(shí)現(xiàn)還將cookie名稱設(shè)置為空,這是考慮到今后可能會有多個cookie要設(shè)置的時候,名稱發(fā)生沖突的情況)。
(4)其他 (這里讓讀者自己去考慮其他的操作,不贅述了。)
好的,你一定又猜到我要說什么了,對頭,code is cheap.看代碼:
/* 對cookie的操作 */
//創(chuàng)建
var Cookie = new Object();
//設(shè)置(修改)屬性和方法
Cookie.setCookie = function(sName, sValue, oExpires, sPath, sDomain, bSecure) {
var sCookie = sName + "=" + escape(sValue); // 名稱和值
if (oExpires) {
sCookie += "; expires=" + oExpires.toGMTString(); // 過期時間
}
if (sPath) {
sCookie += "; path=" + sPath; // 訪問路徑
}
if (sDomain) {
sCookie += "; domain=" + sDomain; // 訪問路徑
}
if (bSecure) {
sCookie += "; true"; // 安全性
}
document.cookie = sCookie;
}
//獲取
Cookie.getCookie = function(sName) {
var cookieArray = document.cookie.split(";"); //得到分割的名值對
var tempCookie = new Object();
for (var i = 0; i < cookieArray.length; i++) {
var tempArr = cookieArray[i].split("="); //將名稱和值分開
if (tempArr[0] == sName) { //如果是指定的cookie,返回它的值
return unescape(tempArr[1]);
}
}
return "There's no such a cookie name!";
}
//刪除
Cookie.deleteCookie = function(sName, sPath, sDomain) {
var sCookie = sName + "=; expires=" + (new Date(0)).toGMTString(); // 設(shè)置名稱為空,過期時間為0,也可以設(shè)置過期時間為負(fù)數(shù) (var sCookie = sName + "=; expires=-1"; )
if (sPath) {
sCookie += "; path=" + sPath;
}
if (sDomain) {
sCookie += "; domain=" + sDomain;
}
document.cookie = sCookie;
}
function test() {
Cookie.setCookie("test", "cookieTest");
alert(Cookie.getCookie("test"));
alert(Cookie.getCookie("test2")); // ???
Cookie.deleteCookie("test");
alert(Cookie.getCookie("test"));
}
補(bǔ)充:javascript 操作cookie類
String.prototype.Trim = function()
{
return this.replace(/^\s+/g,"").replace(/\s+$/g,"");
}
function JSCookie()
{
this.GetCookie = function(key)
{
var cookie = document.cookie;
var cookieArray = cookie.split(';');
var getvalue = "";
for(var i = 0;i<cookieArray.length;i++)
{
if(cookieArray[i].Trim().substr(0,key.length) == key)
{
getvalue = cookieArray[i].Trim().substr(key.length + 1);
break;
}
}
return getvalue;
};
this.GetChild = function(cookiekey,childkey)
{
var child = this.GetCookie(cookiekey);
var childs = child.split('&');
var getvalue = "";
for(var i = 0;i < childs.length;i++)
{
if(childs[i].Trim().substr(0,childkey.length) == childkey)
{
getvalue = childs[i].Trim().substr(childkey.length + 1);
break;
}
}
return getvalue;
};
this.SetCookie = function(key,value,expire,domain,path)
{
var cookie = "";
if(key != null && value != null)
cookie += key + "=" + value + ";";
if(expire != null)
cookie += "expires=" + expire.toGMTString() + ";";
if(domain != null)
cookie += "domain=" + domain + ";";
if(path != null)
cookie += "path=" + path + ";";
document.cookie = cookie;
};
this.Expire = function(key)
{
expire_time = new Date();
expire_time.setFullYear(expire_time.getFullYear() - 1);
var cookie = " " + key + "=e;expires=" + expire_time + ";"
document.cookie = cookie;
}
}
用法:
一、設(shè)置cookie
var cookie = new JSCookie();
//普通設(shè)置
cookie .SetCookie("key1","val1");
//過期時間為一年
var expire_time = new Date();
expire_time.setFullYear(expire_time.getFullYear() + 1);
cookie .SetCookie("key2","val2",expire_time);
//設(shè)置域及路徑,帶過期時間
cookie .SetCookie("key3","val3",expire_time,".cnblogs.com","/");
//設(shè)置帶子鍵的cookie,子鍵分別是k1,k2,k3
cookie .SetCookie("key4","k1=1&k2=2&k3=3");
二、讀取cookie
//簡單獲取
cookie .GetCookie("key1");
cookie .GetCookie("key2");
cookie .GetCookie("key3");
cookie .GetCookie("key4");
//獲取key4的子鍵k1值
cookie .GetChild("key4","k1");
三、刪除
cookie .Expire("key1");
cookie .Expire("key2");
cookie .Expire("key3");
cookie .Expire("key4");
希望本文所述對大家JavaScript程序設(shè)計有所幫助。
- JavaScript實(shí)現(xiàn)cookie的寫入、讀取、刪除功能
- javascript封裝 Cookie 應(yīng)用接口
- JavaScript對Cookie進(jìn)行讀寫操作實(shí)例
- JavaScript中Cookies的相關(guān)使用教程
- javascript實(shí)現(xiàn)設(shè)置、獲取和刪除Cookie的方法
- JavaScript操作Cookie方法實(shí)例分析
- JavaScript使用cookie實(shí)現(xiàn)記住賬號密碼功能
- JavaScript實(shí)現(xiàn)基于Cookie的存儲類實(shí)例
- JavaScript操作cookie類實(shí)例
- javascript操作Cookie(設(shè)置、讀取、刪除)方法詳解
相關(guān)文章
javascript實(shí)現(xiàn)根據(jù)3原色制作顏色選擇器的方法
這篇文章主要介紹了javascript實(shí)現(xiàn)根據(jù)3原色制作顏色選擇器的方法,涉及javascript操作頁面元素屬性的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07
javascript中call,apply,bind的區(qū)別詳解
這篇文章主要介紹了javascript中call,apply,bind的區(qū)別詳解,幫助大家更好的理解和使用JavaScript,感興趣的朋友可以了解下2020-12-12
Uniapp全局消息提示以及其組件的實(shí)現(xiàn)方法
當(dāng)時在做登錄那邊需要做一些交互,所以必不可少要用到消息提示框,下面這篇文章主要給大家介紹了關(guān)于Uniapp全局消息提示以及其組件的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06
詳解如何在微信小程序開發(fā)中正確的使用vant ui組件
這篇文章主要介紹了詳解如何在微信小程序開發(fā)中正確的使用vant ui組件,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-09-09
JavaScript學(xué)習(xí)筆記之創(chuàng)建對象
在JavaScript中對象是一種基本的數(shù)據(jù)類型,在數(shù)據(jù)結(jié)構(gòu)上是一種散列表,可以看作是屬性的無序集合,除了原始值其他一切都是對象。這篇文章主要給大家介紹JavaScript學(xué)習(xí)筆記之創(chuàng)建對象,需要的朋友參考下吧2016-03-03

