1 問題: 最近開發微信web頁面, 需要在微信上儲登錄狀態. 使用localstorage經常失效, 然后發現cookie可以實現,參考W3Cschool后方案如下:
2 解決方案如下:
1 首先,創建一個可在 cookie 變量中存儲訪問者姓名的函數:
function setCookie(c_name,value,expiredays) { var exdate=new Date() exdate.setDate(exdate.getDate()+expiredays) document.cookie=c_name+ "=" +escape(value)+ ((expiredays==null) ? "" : ";expires="+exdate.toGMTString()) }
解釋: 上面這個函數中的參數存有 cookie 的名稱、值以及過期天數。在上面的函數中,我們首先將天數轉換為有效的日期,然后,我們將 cookie 名稱、值及其過期日期存入 document.cookie 對象.
2 創建另一個函數來檢查是否已設置 cookie:
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 "" }
解釋: 上面的函數首先會檢查 document.cookie 對象中是否存有 cookie。假如 document.cookie 對象存有某些 cookie,那么會繼續檢查我們指定的 cookie 是否已儲存。如果找到了我們要的 cookie,就返回值,否則返回空字符串。
3 使用:
`添加cookie名 值 有效期(day),
setCookie('username',username,365)
`訪問cookie: username
getCookie('username'); 若有則返回, 反之則為空.
