要在javascript中创建一个cookie,我使用
document.cookie = "cookieName=cookieValue;expires=myDate;path=/"
阅读cookie:我在网上阅读了许多文章,包括w3schools,但他们使用for(;;){}
方法和split
提供了复杂的代码。我不需要这样的代码。我只需要一个小的JavaScript代码。
如果有人可以,请给我一个显示'cookieName'
Cookie值的提醒的代码?
答案 0 :(得分:1)
这可能是我能给你的最简单方法。
调用它返回cooke值的函数:
/**
* Returns cookie.
* @param {String} sName Main cookie name.
* @param {String} SubName Sub cookie name.
* @return {String} Cookie.
*/
GetCookie: function (sName, SubName) {
var aCookie = document.cookie.split("; "); // cookies are separated by semicolons
var CookieVal = null;
var bHasKeys;
for (var i = 0; i < aCookie.length; i++) {
var aCrumb = aCookie[i].split("=");
bHasKeys = aCrumb.length > 2 ? 1 : 0;
if (sName == aCrumb[0]) {
var TempVal = aCookie[i];
TempVal = TempVal.substring(TempVal.indexOf(sName) + sName.length + 1, TempVal.length);
if (SubName) {
TempArr = TempVal.split("&"); // subcookie seperated by &
for (var j = 0; j < TempArr.length; j++) {
if (TempArr[j].split("=")[0] == SubName) {
CookieVal = TempArr[j].split("=")[1];
//while loop is added since /+/g syantax does not work here
while (CookieVal.indexOf("+") != -1) CookieVal = CookieVal.replace('+', ' ');
CookieVal = unescape(CookieVal);
break;
}
}
}
else {
if (bHasKeys) CookieVal = TempVal;
else {
CookieVal = aCrumb[1];
//while loop is added since /+/g syantax does not work here
while (CookieVal.indexOf("+") != -1) CookieVal = CookieVal.replace('+', ' ');
CookieVal = unescape(CookieVal);
}
break;
}
}
}
return CookieVal == null ? '' : CookieVal;
}