cookie是掛在document對象之下的一個對象,訪問方式就是document.cookie
設置cookie很簡單,直接就是document.cookie=“name1=aaaaa;name2=bbbb”,用分號;隔開表示一個cookie里的兩個不同鍵值對,實際上如果你執(zhí)行兩次document.cookie的賦值,如:
document.cookie="a=aaaa"
document.cookie="b=bbbb"
瀏覽器執(zhí)行的是兩次對象的屬性插入并賦值的過程,所以是不會發(fā)生沖突的,同時如果你兩次賦值的屬性是同名的話自然也就會發(fā)生覆蓋的效果。
但一次賦值與次賦值還是有所不同的,因為在同一行賦值對于瀏覽器而言那就是一個cookie,而分兩次賦值則屬于兩個cookie,因為設置cookie時還能設置一個存在時間,一個存在時間是相對于一個cookie而言的,所以上面兩種賦值方式就有所不同了。
document.cookie="a=aaaa;
expires=GMT_String;"
(GMT_String是一個GMT格式的時間字符串,比如要設置七天的有效時間,那可以這樣:
var date=new Date();
date.setTime(date.getTime()+7**24*3600*1000);
Gmt_String=date.toGMTString();
)
獲取cookie值只能通過document.cookie來獲取,于是出現(xiàn)一個問題是你分多次設置的cookie最終都是全部一起獲取到的,所以此時只能自己再寫方法對截取你要的字段了。
而要刪除一個cookie的話,只需要把它的時間設置為一個已經(jīng)過去的時間即可:
document.cookie="a=aaaa;
expires=new Date().setTime(new Date().getTime()-1000).toGMTString();"
cookie中還有一個參數(shù)path,它用于設置此cookie的可訪問目錄,默認情況下是只能訪問同一個目錄的頁面設置的cookie,如www.abc.com/a/a.html與www.abc.com/b/b.html是互不能訪問到的,因為一個是a目錄,一個是b目錄,但是通過設置path,可以讓它成為全局可訪問,只需要把path設置為根目錄即可,如:document.cookie="a=aaaa;path=/"。
還有一種情況是同一個域名下的不同主機,那就需要設置另一個屬性domain,這樣設置之后才能讓不同主機也能互相訪問:document.cookie="a=aaaa;domain=abc.com",這樣設置就可以實現(xiàn)a.abc.com與b.abc.com之間也能訪問對方的cookie