JavaScript是一種強(qiáng)大的編程語(yǔ)言,它使得用戶能夠交互式地操作網(wǎng)頁(yè)。其中一個(gè)很有用的操作是cookie。Cookie是一種文本文件,存儲(chǔ)在用戶的計(jì)算機(jī)上。它通常被用來存儲(chǔ)網(wǎng)站的用戶信息,例如登錄名、購(gòu)物車中的物品、首選語(yǔ)言、主題等等。
一般來說,使用cookie的方法非常簡(jiǎn)單。一個(gè)cookie由名稱、值、過期時(shí)間、路徑、域名以及安全值這些組成。
以下代碼展示了如何從JavaScript中創(chuàng)建一個(gè)cookie:
function setCookie(name, value, days) { var expires = ""; if (days) { var date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); expires = "; expires=" + date.toUTCString(); } document.cookie = name + "=" + (value || "") + expires + "; path=/"; }
然后,假設(shè)您想要在用戶瀏覽器存儲(chǔ)用戶名, 使用以下代碼將該值寫入cookie:
setCookie("username", "JohnDoe", 30);
當(dāng)用戶再次訪問您的網(wǎng)站時(shí),您可以讀取cookie。以下為讀取cookie的代碼:
function getCookie(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; }
當(dāng)您要獲取用戶名時(shí),可以使用以下代碼:
var username = getCookie("username"); if (username != null) { alert("Welcome again " + username); } else { username = prompt("Please enter your name:", ""); if (username != null && username != "") { setCookie("username", username, 30); } }
可能您需要更新cookie。以下為更新cookie的代碼:
function updateCookie(name, value) { var cookie = name + "=" + encodeURIComponent(value); if (typeof cookieExpirationTime === "number") { cookie += "; max-age=" + (cookieExpirationTime * 60 * 60 * 24); } cookie += "; path=" + cookiePath; document.cookie = cookie; }
現(xiàn)在,如果您要更新用戶名,可以使用以下代碼:
updateCookie('username', 'JaneDoe');
當(dāng)然,您也可以使用以下代碼來刪除cookie:
function deleteCookie(name) { document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;'; }
如果您想要?jiǎng)h除用戶名,可以使用以下代碼:
deleteCookie('username');
這就是JavaScript中cookie的基本操作。當(dāng)然,還有其他選項(xiàng)可供使用,例如:session cookie(生命周期到瀏覽器關(guān)閉)、secure cookie(僅通過https傳輸)、HTTP-only cookie(僅通過HTTP傳輸)等等。但是,我們非常建議您使用此基礎(chǔ),小心地處理cookie。記住,cookie中不應(yīng)該包含敏感信息,最好使用加密函數(shù)進(jìn)行加密保護(hù)。