資源描述:
《javascript中的cookie》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、CookieCookie基礎(chǔ)知識(shí)我們已經(jīng)知道,在document對(duì)象中有一個(gè)cookie屬性。但是Cookie又是什么?“某些Web站點(diǎn)在您的硬盤上用很小的文本文件存儲(chǔ)了一些信息,這些文件就稱為Cookie?!薄狹SIE幫助。一般來(lái)說(shuō),Cookies是CGI或類似,比HTML高級(jí)的文件、程序等創(chuàng)建的,但是JavaScript也提供了對(duì)Cookies的很全面的訪問權(quán)利。在繼續(xù)之前,我們先要學(xué)一學(xué)Cookie的基本知識(shí)。每個(gè)Cookie都是這樣的:cookie名=cookie值;cookie本身僅僅是一個(gè)字符串,是一組名值對(duì);多組名值對(duì)用
2、分號(hào)加空格分隔!"cookie名"的限制與JavaScript的命名限制大同小異,少了“不能用JavaScript關(guān)鍵字”,多了“只能用可以用在URL編碼中的字符”。后者比較難懂,但是只要你只用字母和數(shù)字命名,就完全沒有問題了。“值”的要求也是“只能用可以用在URL編碼中的字符”。每個(gè)Cookie都有失效日期,一旦電腦的時(shí)鐘過了失效日期,這個(gè)Cookie就會(huì)被刪掉。我們不能直接刪掉一個(gè)Cookie,但是可以用設(shè)定失效日期早于現(xiàn)在時(shí)刻的方法來(lái)間接刪掉它。每個(gè)網(wǎng)頁(yè),或者說(shuō)每個(gè)站點(diǎn),都有它自己的Cookies,這些Cookies只能由這個(gè)站點(diǎn)
3、下的網(wǎng)頁(yè)來(lái)訪問,來(lái)自其他站點(diǎn)或同一站點(diǎn)下未經(jīng)授權(quán)的區(qū)域的網(wǎng)頁(yè),是不能訪問的。每一“組”Cookies有規(guī)定的總大?。ù蠹s2KB每“組”),一超過最大總大小,則最早失效的Cookie先被刪除,來(lái)讓新的Cookie“安家”。訪問Cookiedocument.write(document.cookie);//輸出類似"name1=value1;name2=value2;name3=value3"的字符串document.write(typeofdocument.cookie);//cookie僅僅是個(gè)字符串但這樣獲取到的是一堆混亂的字符串,必
4、須對(duì)其進(jìn)行處理才能知道它的含義!在類似ASP或PHP這樣的服務(wù)器端腳本中,往往設(shè)置cookie十分簡(jiǎn)單//ASPresponse.cookies("cookieName")="cookieValue"http://PHPsetcookie("cookieName","cookieValue");解析Cookie名值對(duì)方案一:直接截取字符串functiongetCookie(cookieName){varstart=document.cookie.indexOf(cookieName+"=");if(start==-1){return"";}sta
5、rt=start+cookieName.length+1;varend=document.cookie.indexOf(";",start);if(end=-1){end=document.cookie.length;}returndocument.cookie.substring(start,end);}方案二:將Cookie拆分為數(shù)組,通過遍歷取得functiongetCookie(cookieName){varcookies=document.cookie.split(";");//一個(gè)分號(hào)加一個(gè)空格if(!cookies.len
6、gth){return"";}varpair=["",""];for(vari=0;i7、exec(document.cookie);returnarr?arr[1]:"";}設(shè)置Cookie一個(gè)Cookie包含以下信息:·Cookie名稱,Cookie名稱必須使用只能用在URL中的字符,一般用字母及數(shù)字·Cookie值,Cookie值同樣也只能使用可以用在URL中的字符,一般需要在設(shè)置Cookie值時(shí)對(duì)其使用encodeURI方法進(jìn)行轉(zhuǎn)義·Expires,過期日期,一個(gè)GMT格式的時(shí)間,當(dāng)過了這個(gè)日期之后,瀏覽器就會(huì)將這個(gè)Cookie刪除掉,當(dāng)不設(shè)置這個(gè)的時(shí)候,Cookie在瀏覽器關(guān)閉后消失·Path,一個(gè)路徑,在這個(gè)路徑
8、下面的頁(yè)面才可以訪問該Cookie,一般設(shè)為“/”,以表示同一個(gè)站點(diǎn)的所有頁(yè)面都可以訪問這個(gè)Cookie·Domain,子域,指定在該子域下才可以訪問Cookie,例如要讓Cookie在bbs.x-life