這裏主要不是講這個方法,js寫cookie這種代碼網上一抓一把,在使用的時候遇到一點問題,就是寫的cookie 是有路徑問題的,在user目錄下能夠使用跳轉到另一個目錄下cookie,通過比較cookie與其餘cookie的不一樣發現,用js寫的cookie在當前目錄下,不在根目錄下,這裏能夠用這個來控制訪問可是不符合如今的需求,在網上的某個地方看到一段代碼,能夠解決這個問題,在這裏貼出來,你們須要用的能夠參考。代碼以下:cookie
1 Utils.writeCookie = function (value, name, key) { 2 var Days = 2; 3 var exp = new Date(); 4 exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000); 5 if (key == null || key == "") { 6 document.cookie = name + "=" + encodeURI(value) + ";expires=" + exp.toGMTString()+";path=/"; 7 } 8 else { 9 var nameValue = getCookie(name); 10 if (nameValue == "") { 11 document.cookie = name + "=" + key + "=" + encodeURI(value) + ";expires=" + exp.toGMTString() + ";path=/"; 12 } 13 else { 14 var keyValue = getCookie(name, key); 15 if (keyValue != "") { 16 nameValue = nameValue.replace(key + "=" + keyValue, key + "=" +encodeURI ( value)); 17 document.cookie = name + "=" + nameValue + ";expires=" + exp.toGMTString() + ";path=/"; 18 } 19 else { 20 document.cookie = name + "=" + nameValue + "&" + key + "=" + encodeURI(value) + ";expires=" + exp.toGMTString() + ";path=/"; 21 } 22 } 23 } 24 }
順帶把讀取cookie的也一塊兒貼 了,引用了別人的代碼並不是原創:spa
1 Utils.readCookie = function(name,key) { 2 var nameValue = ""; 3 var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)"); 4 if (arr = document.cookie.match(reg)) { 5 nameValue = decodeURI(arr[2]); 6 } 7 if (key != null && key != "") { 8 reg = new RegExp("(^| |&)" + key + "=([^(;|&|=)]*)(&|$)"); 9 if (arr = nameValue.match(reg)) { 10 alert( decodeURI (arr[2])); return decodeURI(arr[2]); 11 } 12 else return ""; 13 } 14 else { 15 return nameValue; 16 } 17 }