

腳本
這里有你需要的三個腳本
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);
}
解釋:
這個函數并不特別復雜,最難的部分就是為設定cookie建立正確的語法。
createCookie
當調用createCookie()時需要給出三個信息片段(參數):cookie的名字,值和保留cookie的天數,下面的情況是鍵值對變為 ppkcookie=testcookie 并保留cookie7天。
createCookie(‘ppkcookie’,’testcookie’,7)
如果將天數設為0,在關閉瀏覽器時cookie也就會被清除了,若將天數設為負數,cookie將即刻被清除。
這個函數接受參數并開始做事:
Function createCookie(name,value,days){
首先查看是否有days值,如果沒有我們就不必進行時間計算:
If(days){
如果有days值,新建一個包含現在日期Date對象:
var date =new Date();
接下來得到當前時間(毫秒)并加上取得的天數(轉換為毫秒)。然后賦值給date變量,現在我們就有了cookie過期需要的時間的毫秒值。
Date.setTime(date.getTime()+(days*24*60*60*1000));
把date的UTC/GMT格式賦給cookie需要的變量expires
var expires =”; expires=”+date.toGMTString();
}
如果傳遞給函數的days為0,expires就設為空,這樣的話當關閉瀏覽器時cookie就過期了
Else var expires =””;
最后把新的cookie按照正確的語法寫入document.cookie中:
Document.cookie=name+”=”+value+expires+”; path=/”;
到此cookie建立成功。
readCookie
要讀取cookie,調用這個函數并傳遞cookie的name。把name放入一個變量。首先檢查是否這個變量已被賦值(如果cookie不存在,這個變量變為null,這可能會打亂函數的執行),然后做任何想做的事:
Var x =readCookie(‘ppkcookie1’)
If(x){
?????? [do something with x]
}
函數接收參數并開始執行:
Function readCookie(name){
然后準備搜索名為name的cookie,把=附加到name后,并把它賦給新的字符串變量nameEQ:
Var nameEQ=name+”=”;
然后用分號(;)把document.cookie分割,把分割后的數組賦給變量ca,其中包含此域和路徑的所有cookies:
Var ca = document.cookie.split(‘;’);
遍歷數組(即cookies):
For(var i=0;i<ca.length;i++){
把要被檢查的cookie賦給變量c
Var c=ca[i];
如果第一個字符為空格,用substring()方法去掉,循環此步驟直到第一個字符不是空格為止:
While(c.charAt(0)==’ ‘) c=c.substring(1,c.length);
現在字符串c的值開始于當前cookie的name,檢查是否這個name是我們需要的cookie的:
If(c.indexOf(nameEQ)==0)
我們已經找到我們要找的cookie。現在只需要返回cookie的值,這個值就是c中nameEQ后面的部分。返回值后函數也結束:任務完成!
If(c.indexOf(nameEQ)==0) return c.substring(nameEQ.length,c.length);
}
如果遍歷所有cookies后沒有發現要找的name,那么cookie就不是當前的,返回null
Return null
}
Cookie讀取完成
EraseCookie
清除cookie是非常簡單的。
eraseCookie(’ppkcookie’)
把要清除的cookie的name傳遞過去
Function eraseCookie(name){
調用createCookie()將cookie的過期日期設置為以前的某個時間
createCookie(name,””,-1);
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
