該文章來源於網頁整理.javascript
1.
";expires="以前的字符串你能夠隨便寫,可是";expires="必須遵循這個寫法,尤爲是這個分號不能少,否則瀏覽器是認不出你的expires(過時時間),而把它當成cookie內容的一部分。html
設置標識符的時候,我建議儘可能不要用分號當作分隔符。「吞掉了」,形成這個現象的緣由是,瀏覽器在保存cookie的時候,在讀到分號以後,就認爲cookie的內容結束了。java
要在一條cookie中設置多個值,就須要像代碼2這樣用標示符(不要分號)進行分割。而後在讀取的時候,也根據標示符進行逐個讀取。jquery
設置多個cookie,這個時候,你再去解析cookie的時候,就要用分號做爲分隔符了。web
咱們儘可能不要直接在Cookie中 保存一些重要的或者敏感的內容。若是咱們確實須要使用Cookie保存一些重要的內容,但又不但願被他人看懂, 咱們可使用一些加密的方法來保護這些內容。chrome
chrome不支持本地cookie,而須要用online-cookie瀏覽器
代碼來自w3school的js操做cookie教程,經本人整理和個性化。安全
<!-- 記住密碼 -->
<html>
<head>
<script type="text/javascript">
function getCookie(c_name) //根據分隔符每一個變量的值
{
if (document.cookie.length > 0) {
c_start = document.cookie.indexOf(c_name + "=")
if (c_start != -1) {
c_start = c_start + c_name.length + 1;
c_end = document.cookie.indexOf("^",c_start);
if (c_end==-1)
c_end=document.cookie.length;
return unescape(document.cookie.substring(c_start,c_end));
}
}
return "";
}
function setCookie(c_name, n_value, p_name, p_value, expiredays) //設置cookie
{
var exdate = new Date();
exdate.setDate(exdate.getDate() + expiredays);
document.cookie = c_name + "=" + escape(n_value) + "^" + p_name + "=" + escape(p_value) + ((expiredays == null) ? "" : "^;expires=" + exdate.toGMTString());
console.log(document.cookie)
}
function checkCookie() //檢測cookie是否存在,若是存在則直接讀取,不然建立新的cookie
{
alert(document.cookie)
var username = getCookie('username');
var password = getCookie('password');
if (username != null && username != "" && password != null && password != "") {
alert('Your name: ' + username + '\n' + 'Your password: ' + password);
}
else {
username = prompt('Please enter your name:',"");
password = prompt('Please enter your name:',"");
if (username != null && username != "" && password != null && password != "")
{
setCookie('username', username, 'password', password, 365);
}
}
alert(document.cookie)
}
function cleanCookie (c_name, p_name) { //使cookie過時
document.cookie = c_name + "=" + ";" + p_name + "=" + ";expires=Thu, 01-Jan-70 00:00:01 GMT";
}
</script>
</head>
<body onLoad="checkCookie()">
</body>
</html>cookie
2.session
jquery.cookie 使用方法一個輕量級的 cookie 插件,能夠讀取、寫入、刪除 cookie。
jquery.cookie.js 的配置首先包含 jQuery 的庫文件,在後麪包含 jquery.cookie.js 的庫文件。
<script type="text/javascript" src="js/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="js/jquery.cookie.js"></script>
使用方法新添加一個會話 cookie:
$.cookie('the_cookie', 'the_value');
注:當沒有指明 cookie 有效時間時,所建立的 cookie 有效期默認到用戶關閉瀏覽器爲止,因此被稱爲 「會話 cookie(session cookie)」。
建立一個 cookie 並設置有效時間爲 7 天:
$.cookie('the_cookie', 'the_value', { expires: 7 });
注: 當指明瞭 cookie 有效時間時, 所建立的 cookie 被稱爲 「持久 cookie (persistent cookie)。 」
建立一個 cookie 並設置 cookie 的有效路徑:
$.cookie('the_cookie', 'the_value', { expires: 7, path: '/' });
注:在默認狀況下,只有設置 cookie 的網頁才能讀取該 cookie。若是想讓一個頁面讀取另外一個頁面設 置的 cookie,必須設置 cookie 的路徑。cookie 的路徑用於設置可以讀取 cookie 的頂級目錄。將這 個路徑設置爲網站的根目錄, 可讓全部網頁都能互相讀取 cookie (通常不要這樣設置, 防止出現衝突)。
讀取 cookie:
$.cookie('the_cookie');
// cookie 存在 => 'the_value' $.cookie('not_existing');
// cookie 不存在 => null 刪除 cookie,經過傳遞 null 做爲 cookie 的值便可: $.cookie('the_cookie', null);
部分參數解釋:domain: 'example.com' 默認值:建立 cookie 的網頁所擁有的域名。secure: true 默認值:false。 若是爲 true,cookie 的傳輸須要使用安全協議(HTTPS)。 raw: true 默認值:false。 默認狀況下,讀取和寫入 cookie 的時候自動進行編碼和解碼(使用 encodeURIComponent 編碼, decodeURIComponent 解碼)。要關閉這個功能設置 raw: true 便可。