document.cookie = c_name + "=" + escape(value) + ((expiredays == null) ? "" : ";expires=" + exdate.toUTCString())
在网上搜索document.cookie的用法,几乎每篇文章都如上所写,但亲自上手在项目中写了一遍后发现并不是像所想那样,只存上了第一个键值,;之后的键值没有存上,后来又查到documen.cookie赋两次值只要key不同会自动拼接,key相同会覆盖,所以修改成
document.cookie = c_name + "=" + escape(value) ; document.cookie = ((expiredays == null) ? "" : "expires=" + exdate.toUTCString())
可以正常实现功能了。 另附完整的setCookie和getCookie方法:
function setCookie(c_name, value, expiredays) { debugger // document.cookie=document.cookie.match(/[^ =;]+(?=\=)/g)[0]+'=0;expires=' + new Date( 0).toUTCString() 清除cookie var exdate = new Date() // exdate.setDate(exdate.getDate() + expiredays) exdate.setTime(exdate.getTime()+expiredays * 24 * 60 * 60 * 1000) document.cookie = c_name + "=" + escape(value) ; document.cookie = ((expiredays == null) ? "" : "expires=" + exdate.toUTCString()) alert(document.cookie) } function getCookie(c_name) { var strCookie = document.cookie; var arrCookie = strCookie.split(";"); for (var i = 0 ; i < arrCookie.length; i++) { var arr = arrCookie[i].split("="); if (arr[0] == c_name) { return arr[1]; } } return ""; }