javascript設(shè)置和獲取cookie的方法實(shí)例詳解
本文實(shí)例講述了javascript設(shè)置和獲取cookie的方法。分享給大家供大家參考,具體如下:
1. 設(shè)置cookie
function setCookie(cookieName,cookieValue,cookieExpires,cookiePath)
{
cookieValue = escape(cookieValue);//編碼latin-1
if(cookieExpires=="")
{
var nowDate = new Date();
nowDate.setMonth(nowDate.getMonth()+6);
cookieExpires = nowDate.toGMTString();
}
if(cookiePath!="")
{
cookiePath = ";Path="+cookiePath;
}
document.cookie= cookieName+"="+cookieValue+";expires="+cookieExpires+cookiePath;
}
2. 獲取cookie
function getCookieValue(cookieName)
{
var cookieValue = document.cookie;
var cookieStartAt = cookieValue.indexOf(""+cookieName+"=");
if(cookieStartAt==-1)
{
cookieStartAt = cookieValue.indexOf(cookieName+"=");
}
if(cookieStartAt==-1)
{
cookieValue = null;
}
else
{
cookieStartAt = cookieValue.indexOf("=",cookieStartAt)+1;
cookieEndAt = cookieValue.indexOf(";",cookieStartAt);
if(cookieEndAt==-1)
{
cookieEndAt = cookieValue.length;
}
cookieValue = unescape(cookieValue.substring(cookieStartAt,cookieEndAt));//解碼latin-1
}
return cookieValue;
}
例子:
<!doctype html>
<html>
<head>
<title>cookie</title>
<meta charset="utf-8">
<script language="javascript" type="text/javascript">
//獲取cookie
function getCookieValue(cookieName)
{
var cookieValue = document.cookie;
var cookieStartAt = cookieValue.indexOf(""+cookieName+"=");
if(cookieStartAt==-1)
{
cookieStartAt = cookieValue.indexOf(cookieName+"=");
}
if(cookieStartAt==-1)
{
cookieValue = null;
}
else
{
cookieStartAt = cookieValue.indexOf("=",cookieStartAt)+1;
cookieEndAt = cookieValue.indexOf(";",cookieStartAt);
if(cookieEndAt==-1)
{
cookieEndAt = cookieValue.length;
}
cookieValue = unescape(cookieValue.substring(cookieStartAt,cookieEndAt));//解碼latin-1
}
return cookieValue;
}
//設(shè)置cookie
function setCookie(cookieName,cookieValue,cookieExpires,cookiePath)
{
cookieValue = escape(cookieValue);//編碼latin-1
if(cookieExpires=="")
{
var nowDate = new Date();
nowDate.setMonth(nowDate.getMonth()+6);
cookieExpires = nowDate.toGMTString();
}
if(cookiePath!="")
{
cookiePath = ";Path="+cookiePath;
}
document.cookie= cookieName+"="+cookieValue+";expires="+cookieExpires+cookiePath;
}
//頁面加載時(shí)間處理函數(shù)
function window_onload()
{
var userNameElem = document.getElementById("userName");//用戶名輸入框?qū)ο?
var passwordElem = document.getElementById("password");//密碼輸入框?qū)ο?
var currUserElem = document.getElementById("currUser");//復(fù)選框?qū)ο?
var currUser = getCookieValue("currUser");
if(currUser!=null)
{
userNameElem.value=currUser;
currUserElem.checked = true;
}
if(userNameElem.value!="")
{
passwordElem.focus();//密碼輸入框獲得焦點(diǎn)
}
else
{
currUserElem.focus();//用戶名輸入框獲得焦點(diǎn)
}
}
//表單提交處理
function login()
{
var userNameElem = document.getElementById("userName");
var passwordElem = document.getElementById("password");
var currUserElem = document.getElementById("currUser");
if(userNameElem.value=="" || passwordElem.value=="")
{
alert("用戶名或密碼不能為空!");
if(userNameElem.value=="")
{
userNameElem.focus();//用戶名輸入框獲得焦點(diǎn)
}
else
{
passwordElem.focus();//密碼輸入框獲得焦點(diǎn)
}
return false;
}
if(currUserElem.checked)
{
setCookie("currUser",userNameElem.value,"","");//設(shè)置cookie
}
else
{
var nowDate = new Date();//當(dāng)前日期
nowDate.setMonth(nowDate.getMonth()-2);//將cookie的過期時(shí)間設(shè)置為之前的某個(gè)日期
cookieExpires = nowDate.toGMTString();//過期時(shí)間的格式必須是GMT日期的格式
setCookie("userName","",cookieExpires,"");//刪除一個(gè)cookie只要將過期時(shí)間設(shè)置為過去的一個(gè)時(shí)間即可
}
return true;
}
</script>
<style type="text/css">
div{
font-size:12px;
}
</style>
</head>
<body onload="window_onload()">
<div>
<form id="loginForm" onsubmit="return login()">
用戶名:<input type="text" id="userName"><br>
密 碼:<input type="password" id="password">
<input type="checkbox" id="currUser">記住用戶名<br>
<input type="submit" value="登錄">
</form>
</div>
</body>
</html>
注意:
由于google Chrome瀏覽器為了安全只支持online-cookie,所以在本地測試時(shí)是沒有效果的,需要上傳到服務(wù)器試一下。
更多關(guān)于JavaScript操作cookie相關(guān)內(nèi)容可查看本站專題:《JavaScript 操作 cookie相關(guān)知識(shí)匯總》及《jQuery的cookie操作技巧總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
- 原生js配合cookie制作保存路徑的拖拽
- js操作cookie保存瀏覽記錄的方法
- jquery.cookie.js用法實(shí)例詳解
- JS封裝cookie操作函數(shù)實(shí)例(設(shè)置、讀取、刪除)
- JS使用cookie實(shí)現(xiàn)DIV提示框只顯示一次的方法
- 通過Jquery.cookie.js實(shí)現(xiàn)展示瀏覽網(wǎng)頁的歷史記錄超管用
- JS利用cookie記憶當(dāng)前位置的防刷新導(dǎo)航效果
- JS基于cookie實(shí)現(xiàn)來賓統(tǒng)計(jì)記錄訪客信息的方法
- 詳談javascript中的cookie
- js簡單設(shè)置與使用cookie的方法
相關(guān)文章
JavaScript實(shí)現(xiàn)定時(shí)隱藏與顯示圖片的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)定時(shí)隱藏與顯示圖片的方法,可實(shí)現(xiàn)javascript定時(shí)關(guān)閉圖片的功能,涉及javascript針對(duì)頁面元素屬性定時(shí)操作的相關(guān)技巧,需要的朋友可以參考下2015-08-08
JavaScript數(shù)組Array對(duì)象增加和刪除元素方法總結(jié)
這篇文章主要介紹了JavaScript數(shù)組Array對(duì)象增加和刪除元素方法,實(shí)例總結(jié)了pop方法、push方法、splice方法、concat方法等的使用技巧,需要的朋友可以參考下2015-01-01
JavaScript 阻止超鏈接跳轉(zhuǎn)的操作方法(多種寫法)
很多朋友問小編能否通過JavaScript來阻止超鏈接的跳轉(zhuǎn)呢,今天給大家通過多種寫法來實(shí)現(xiàn)這一功能,具體實(shí)例代碼跟隨小編一起看看吧2021-06-06
淺析js實(shí)現(xiàn)網(wǎng)頁截圖的兩種方式
這篇文章主要介紹了淺析js實(shí)現(xiàn)網(wǎng)頁截圖的兩種方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
JS模擬百度搜索框和選項(xiàng)卡的實(shí)現(xiàn)
本文主要介紹了JS模擬百度搜索框和選項(xiàng)卡的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-03-03

