使用JavaScript操作Cookie

wangjianme 12年前發布 | 28K 次閱讀 Cookie JavaScript開發 JavaScript

使用JavaScript操作Cookie

相關文檔請見DHTML.CHM。里面有完整的操作方法說明。以下是代碼示例。

1、使用JavaScript保存一個Cookie

var date = new Date();      //聲明當前時間

var time = 1000*60*60*24;       //這是一天。1000毫秒(即1秒)*60=1分鐘

time = date.getTime()+time;   //當前時間的毫秒值相加

date.setTime(time);          //設置時間,這時的時間已經是加上1天以后的時間了

var path = "<%=request.getContextPath()%>";//獲取當前項目的目錄

document.cookie="name=JSJack;expires="+date.toUTCString()+";path="+path;//保存Cookie

 

在上面的設置中,顯式的設置了path。不果不設置則為當前頁面所在的路徑。

說明:在JS中保存Cookie時,格式有明確的說明為:


<!--[endif]-->

說明:GMT時間和UTC時間,都是標準時間,由于toGMTString已經被廢棄,所以推薦使用toUTCString()

2、使用JS讀取Cookie

var cs = document.cookie.split(";");//根據;(分號)分隔所有Cookie

div.innerHTML=cs.length;        //判斷Cookie的個數寫到已定義的div

for(var i=0;i<cs.length;i++){      //遍歷Cookie

var c = cs[i];

div.innerHTML+="<br/>"+c;       //顯示Cooke,格式為:Name=Value

}

顯示結果如下:

1                                 //這是個數

name=JSJack                //這是Cookie

 

3、使用JS刪除一個Cookie

       刪除時,必須要與原來的值設置的完全一樣,否則刪除不成功。刪除時,只要將時間設置為一個過期的時間即可以刪除。

代碼示例:

創建:

var date = new Date();      //聲明當前時間

var time = 1000*60*60*24;       //這是一天。1000毫秒(即1秒)*60=1分鐘

time = date.getTime()+time;   //當前時間的毫秒值相加

date.setTime(time);          //設置時間,這時的時間已經是加上1天以后的時間了

document.cookie="name=JSJack;expires="+date.toUTCString()+";path=/";//保存Cookie

刪除:

<script type="text/javascript">

      //刪除Cookie只要將時間設置為過期時間即可

      var date = new Date(1900,1,1);//聲明一個已經過去的時間

      document.cookie="name=ok;expires="+date.toUTCString()+";path=/";//執行刪除

</script>

 

4、保存中文示例

Cookie中不可以保存中文。有些瀏覽器如IE,雖然看上去可以處理中文,但會使整個JS解析終止,所以,不可以直接保存中文。

如果要保存中文,應該使用escape(string)進行編碼,當然讀取一個經過編碼的cookie時,還必須要經過unescape(string)解碼。關于escape的說明請查詢JavaScript的文檔:


<!--[endif]-->

保存中文的示例代碼:

var date = new Date();      //聲明當前時間

var time = 1000*60*60*24;       //這是一天。1000毫秒(即1秒)*60=1分鐘

time = date.getTime()+time;   //當前時間的毫秒值相加

date.setTime(time);          //設置時間,這時的時間已經是加上1天以后的時間了

var cn = "你好";             //聲明需要保存的中文

cn = escape(cn);            //對中文進行編碼

document.cookie="name="+cn+";expires="+date.toUTCString()+";path=/";//保存Cookie

 

讀取中文時當然也要進行unescape的解碼:

var cs = document.cookie.split(";");//根據;(分號)分隔所有Cookie

div.innerHTML=cs.length;        //判斷Cookie的個數寫到已定義的div

for(var i=0;i<cs.length;i++){      //遍歷Cookie

var c = cs[i];

div.innerHTML+="<br/>"+c;       //顯示Cooke,格式為:Name=Value

var cc = c.split("=");          //根據=等于號進行分隔

div.innerHTML+="<br/>"+cc[0]+","+unescape(cc[1]);//value部分進行解碼

}

 本文由用戶 wangjianme 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!