腳本
這里有你需要的三個(gè)腳本
function createCookie(name,value,days) {
?????? if (days) {
????????????? var date = new Date();
????????????? date.setTime(date.getTime()+(days*24*60*60*1000));
????????????? var expires = "$$ expires="+date.toGMTString();
?????? }
?????? else var expires = ""$$
?????? document.cookie = name+"="+value+expires+"$$ path=/"$$
}
function readCookie(name) {
?????? var nameEQ = name + "="$$
?????? var ca = document.cookie.split(';');
?????? for(var i=0;i < ca.length;i++) {
????????????? var c = ca[i];
????????????? while (c.charAt(0)==' ') c = c.substring(1,c.length);
????????????? if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
?????? }
?????? return null;
}
function eraseCookie(name) {
?????? createCookie(name,"",-1);
}
解釋:
這個(gè)函數(shù)并不特別復(fù)雜,最難的部分就是為設(shè)定cookie建立正確的語法。
createCookie
當(dāng)調(diào)用createCookie()時(shí)需要給出三個(gè)信息片段(參數(shù)):cookie的名字,值和保留cookie的天數(shù),下面的情況是鍵值對變?yōu)?ppkcookie=testcookie 并保留cookie7天。
createCookie(‘ppkcookie’,’testcookie’,7)
如果將天數(shù)設(shè)為0,在關(guān)閉瀏覽器時(shí)cookie也就會被清除了,若將天數(shù)設(shè)為負(fù)數(shù),cookie將即刻被清除。
這個(gè)函數(shù)接受參數(shù)并開始做事:
Function createCookie(name,value,days){
首先查看是否有days值,如果沒有我們就不必進(jìn)行時(shí)間計(jì)算:
If(days){
如果有days值,新建一個(gè)包含現(xiàn)在日期Date對象:
var date =new Date();
接下來得到當(dāng)前時(shí)間(毫秒)并加上取得的天數(shù)(轉(zhuǎn)換為毫秒)。然后賦值給date變量,現(xiàn)在我們就有了cookie過期需要的時(shí)間的毫秒值。
Date.setTime(date.getTime()+(days*24*60*60*1000));
把date的UTC/GMT格式賦給cookie需要的變量expires
var expires =”; expires=”+date.toGMTString();
}
如果傳遞給函數(shù)的days為0,expires就設(shè)為空,這樣的話當(dāng)關(guān)閉瀏覽器時(shí)cookie就過期了
Else var expires =””;
最后把新的cookie按照正確的語法寫入document.cookie中:
Document.cookie=name+”=”+value+expires+”; path=/”;
到此cookie建立成功。
readCookie
要讀取cookie,調(diào)用這個(gè)函數(shù)并傳遞cookie的name。把name放入一個(gè)變量。首先檢查是否這個(gè)變量已被賦值(如果cookie不存在,這個(gè)變量變?yōu)閚ull,這可能會打亂函數(shù)的執(zhí)行),然后做任何想做的事:
Var x =readCookie(‘ppkcookie1’)
If(x){
?????? [do something with x]
}
函數(shù)接收參數(shù)并開始執(zhí)行:
Function readCookie(name){
然后準(zhǔn)備搜索名為name的cookie,把=附加到name后,并把它賦給新的字符串變量nameEQ:
Var nameEQ=name+”=”;
然后用分號(;)把document.cookie分割,把分割后的數(shù)組賦給變量ca,其中包含此域和路徑的所有cookies:
Var ca = document.cookie.split(‘;’);
遍歷數(shù)組(即cookies):
For(var i=0;i<ca.length;i++){
把要被檢查的cookie賦給變量c
Var c=ca[i];
如果第一個(gè)字符為空格,用substring()方法去掉,循環(huán)此步驟直到第一個(gè)字符不是空格為止:
While(c.charAt(0)==’ ‘) c=c.substring(1,c.length);
現(xiàn)在字符串c的值開始于當(dāng)前cookie的name,檢查是否這個(gè)name是我們需要的cookie的:
If(c.indexOf(nameEQ)==0)
我們已經(jīng)找到我們要找的cookie。現(xiàn)在只需要返回cookie的值,這個(gè)值就是c中nameEQ后面的部分。返回值后函數(shù)也結(jié)束:任務(wù)完成!
If(c.indexOf(nameEQ)==0) return c.substring(nameEQ.length,c.length);
}
如果遍歷所有cookies后沒有發(fā)現(xiàn)要找的name,那么cookie就不是當(dāng)前的,返回null
Return null
}
Cookie讀取完成
EraseCookie
清除cookie是非常簡單的。
eraseCookie(’ppkcookie’)
把要清除的cookie的name傳遞過去
Function eraseCookie(name){
調(diào)用createCookie()將cookie的過期日期設(shè)置為以前的某個(gè)時(shí)間
createCookie(name,””,-1);
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

