我正在制作一个模拟在线订购网站,它需要多值的cookie但我的代码不会保存任何东西。 Cookie应包含产品名称,价格和数量。 任何帮助将不胜感激。
function setCookie(cName, cValue, expDate, cPath, cDomain, cSecure) {
if (cName && cValue != "") {
var cString = cName + "=" + escape(cValue);
cString += (expDate ? ";expires=" + expDate.toGMTString(): "");
cString += (cPath ? ";path=" + cPath : "");
cString += (cDomain ? ";domain=" + cDomain : "");
cString += (cSecure ? ";secure" : "");
document.cookie = cString;
}
}
function setField(cName, fName, fValue, expDate, cPath, cDomain, cSecure) {
if (cName && fName && fValue != "") {
var subkey = fName + "=" + escape(fValue);
var cValue = null;
var cookies = document.cookie.split("; ");
for (var i = 0; i < cookies.length; i++) {
if (cookies[i].split("=")[0] == cName) {
cValue = cookies[i].slice(cookies[i].indexOf("=") + 1);
break;
}
}
if (cValue) {
var foundField = false;
var subkeys = cValue.split("&");
for (var i = 0; i < subkeys.length; i++) {
if (subkeys[i].split("=")[0] == fName) {
foundField = true;
subkeys[i] = subkey;
break;
}
}
if (foundField) cValue = subkeys.join("&")
else cValue += "&" + subkey;
} else {
cValue = subkey;
}
var cString = cName + "=" + cValue;
cString += (expDate ? ";expires=" + expDate.toGMTString(): "");
cString += (cPath ? ";path=" + cPath : "");
cString += (cDomain ? ";domain=" + cDomain : "");
cString += (cSecure ? ";secure" : "");
document.cookie = cString;
}
}
答案 0 :(得分:0)
我在最新的Windows 7中尝试了Chrome中的代码:
setCookie('test', 'test')
并按预期工作,正在设置具有此名称和值的Cookie:
console.log(document.cookie)
输出:
"test=test;....
如果代码不起作用,我可以认为它是由以下原因引起的:
G'luck!