国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

javascript操作cookie方法函數(shù)集合第1/2頁(yè)

2019-11-21 00:22:20
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
問(wèn)題:
使得在訪問(wèn)頁(yè)面的時(shí)候能夠沿用上次的設(shè)置,或者在不同的頁(yè)面間共享數(shù)據(jù)。比如用戶在訪問(wèn)網(wǎng)站的時(shí)候設(shè)置了頁(yè)面字體的大小,那么會(huì)希望下次訪問(wèn)的時(shí)候仍然能使用同樣的設(shè)置進(jìn)行瀏覽,而不用重復(fù)設(shè)置。
解決方案:
在用戶瀏覽頁(yè)面并進(jìn)行設(shè)置時(shí),將這些設(shè)置保存在cookie中,下次訪問(wèn)的時(shí)候讀取cookie中的設(shè)置。
參考下面的腳本:
復(fù)制代碼 代碼如下:

// utility function to retrieve an expiration data in proper format;
function getExpDate(days, hours, minutes)
{
var expDate = new Date();
if(typeof(days) == "number" && typeof(hours) == "number" && typeof(hours) == "number")
{
expDate.setDate(expDate.getDate() + parseInt(days));
expDate.setHours(expDate.getHours() + parseInt(hours));
expDate.setMinutes(expDate.getMinutes() + parseInt(minutes));
return expDate.toGMTString();
}
}
//utility function called by getCookie()
function getCookieVal(offset)
{
var endstr = document.cookie.indexOf(";", offset);
if(endstr == -1)
{
endstr = document.cookie.length;
}
return unescape(document.cookie.substring(offset, endstr));
}
// primary function to retrieve cookie by name
function getCookie(name)
{
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while(i < clen)
{
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
{
return getCookieVal(j);
}
i = document.cookie.indexOf(" ", i) + 1;
if(i == 0) break;
}
return;
}
// store cookie value with optional details as needed
function setCookie(name, value, expires, path, domain, secure)
{
document.cookie = name + "=" + escape(value) +
((expires) ? "; expires=" + expires : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
}
// remove the cookie by setting ancient expiration date
function deleteCookie(name,path,domain)
{
if(getCookie(name))
{
document.cookie = name + "=" +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
"; expires=Thu, 01-Jan-70 00:00:01 GMT";
}
}

使用getCookie(name)函數(shù)來(lái)讀取cookie中保存的值,參數(shù)name為cookie項(xiàng)的名稱。如果該cookie項(xiàng)不存在則返回一個(gè)空字符串。
使用setCookie()函數(shù)來(lái)保存cookie項(xiàng)的值,其中第一、二兩個(gè)參數(shù)分別為cookie項(xiàng)的名稱和值。如果想為其設(shè)置一個(gè)過(guò)期時(shí)間,那么就需要設(shè)置第三個(gè)參數(shù),這里需要通過(guò)getExpDate()獲得一個(gè)正確格式的參數(shù)。
最后,使用deleteCookie()來(lái)刪除一個(gè)已存在的cookie項(xiàng),實(shí)際上是通過(guò)讓該項(xiàng)過(guò)期。
cookie將數(shù)據(jù)保存在客戶端。頁(yè)面的腳本只能讀取所在域和服務(wù)器的cookie值,如果域內(nèi)有多個(gè)服務(wù)器,那么需要設(shè)置第五個(gè)參數(shù),以指定服務(wù)器。瀏覽器的容量一般限定為每服務(wù)器20個(gè)name/value對(duì),每個(gè)cookie項(xiàng)不超過(guò)4000個(gè)字符,更現(xiàn)實(shí)點(diǎn),單個(gè)cookie項(xiàng)應(yīng)少于2000字符,也就是說(shuō)不要用cookie在客戶端保存大容量數(shù)據(jù)。
不同的瀏覽器保存cookie的方式也有所不同。IE為每個(gè)域的cookie建立一個(gè)文本文件,而Netscape則將所有的cookie存儲(chǔ)在同一個(gè)文本文件中。
注意:cookie存放在客戶端,所以會(huì)受到瀏覽器設(shè)置的影響,比如用戶可能會(huì)禁用cookie。要檢測(cè)瀏覽器是否支持cookie,使用屬性navigator.cookieEnabled來(lái)判斷。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 杭锦后旗| 仁化县| 明溪县| 临城县| 靖州| 若尔盖县| 日照市| 兰州市| 广南县| 宁晋县| 镇巴县| 惠东县| 孟州市| 诸城市| 武川县| 政和县| 松阳县| 潜江市| 河源市| 宁蒗| 蒲城县| 界首市| 贡山| 屯留县| 蓝山县| 磴口县| 颍上县| 内江市| 太原市| 济宁市| 乐都县| 黑山县| 集安市| 肇州县| 荣成市| 沈阳市| 正安县| 丹棱县| 扎鲁特旗| 甘洛县| 大渡口区|